zoukankan      html  css  js  c++  java
  • 对象和类的属性查找以及绑定方法

    class OldboyStudent:
    school='oldboy'
    count=0 # 对象共有的数据属性

    def __init__(self, x, y, z): #会在调用类时自动触发
    self.name = x #stu1.name='耗哥'
    self.age = y #stu1.age=18
    self.sex = z #stu1.sex='male'
    OldboyStudent.count+=1 # 每调用一次count加1


    def choose_course(self):
    print('is choosing course')


    # 先从对象自己的名称空间找,没有则去类中找,如果类也没有则报错
    stu1=OldboyStudent('耗哥',18,'male')
    stu2=OldboyStudent('猪哥',17,'male')
    stu3=OldboyStudent('帅翔',19,'female')

    print(OldboyStudent.count)
    print(stu1.count)
    print(stu2.count)
    print(stu3.count)

    绑定方法

    class OldboyStudent:
    school='oldboy'


    def __init__(self, x, y, z): #会在调用类时自动触发
    self.name = x #stu1.name='耗哥'
    self.age = y #stu1.age=18
    self.sex = z #stu1.sex='male'

    def choose_course(self,x):
    print('%s is choosing course' %self.name)

    def func(self):
    pass
    # 类名称空间中定义的数据属性和函数属性都是共享给所有对象用的
    # 对象名称空间中定义的只有数据属性,而且是对象所独有的数据属性 《=====》很重要

    stu1=OldboyStudent('耗哥',18,'male')
    stu2=OldboyStudent('猪哥',17,'male')
    stu3=OldboyStudent('帅翔',19,'female')

    print(stu1.name)
    print(stu1.school)


    # 类中定义的函数是类的函数属性,类可以使用,但使用的就是一个普通的函数而已,意味着需要完全遵循函数的参数规则,该传几个值就传几个
    print(OldboyStudent.choose_course)
    OldboyStudent.choose_course(123)

    # 类中定义的函数是共享给所有对象的,对象也可以使用,而且是绑定给对象用的,
    #绑定的效果:绑定给谁,就应该由谁来调用,谁来调用就会将谁当作第一个参数自动传入
    # 绑定给哪个对象就由哪个对象来调用,self作为第一个形参,接受绑定对象的传值,self即绑定的对象容器 《======》很重要
    print(id(stu1.choose_course))
    print(id(stu2.choose_course))
    print(id(stu3.choose_course))
    print(id(OldboyStudent.choose_course))

    print(id(stu1.school))
    print(id(stu2.school))
    print(id(stu3.school))

    print(id(stu1.name),id(stu2.name),id(stu3.name))


    stu1.choose_course(1)
    stu2.choose_course(2)
    stu3.choose_course(3)
    stu1.func()
    # 补充知识点(***)
    # 补充:类中定义的函数,类确实可以使用,但其实类定义的函数大多情况下都是绑定给对象用的,所以在类中定义的函数都应该自带一个参数self

     
  • 相关阅读:
    CodeForces 385C Bear and Prime Numbers 素数打表
    ZOJ 2853 Evolution 【简单矩阵快速幂】
    矩阵快速幂学习笔记
    USACO The Tamworth Two 模拟
    USACO Money Systems Dp 01背包
    UASCO Zero Sum DFS + Stack
    USACO Cow Pedigrees 【Dp】
    USACO Longest Prefix 【水】
    USACO Party Lamps 【Binary code solvution】【规律】
    USACO Runaround Numbers 模拟
  • 原文地址:https://www.cnblogs.com/Roc-Atlantis/p/9229542.html
Copyright © 2011-2022 走看看