属性查找与绑定

 类中定义的函数属性,在没有经过任何附加处理时,实际上是给对象使用的,绑定给对象使用,谁来调用就实现谁的功能

#先定义类
#__init__方法用来为对象定制对象自己独有的特征
class LuffyStudent:
    school = "Luffycity"  # 数据属性

    #            stu1,"王大拿","女",18
    def __init__(self,name,sex,age):
        self.Name = name
        self.Sex = sex
        self.Age = age

        #stu1.Name = "王大拿"
        #stu1.Sex = "女"
        #stu.Age = 18

    # 类中定义的函数属性,在没有经过任何附加处理时,实际上是给对象使用的,绑定给对象使用,谁来调用就实现谁的功能
    def learn(self):  # 函数属性  # self传的是对象
        print("%s is Learning" % self.Name)

    def eat(self):  # 函数属性
        print("%s is eating" % self.Name)

    def sleep(self):
        print("%s is sleeping" % self.Name)

#后产生对象
stu1 = LuffyStudent("王大拿","",18) # LuffStudent.__init__(stu1,"王大拿","女",18)
stu2 = LuffyStudent("五六七","",26)
stu3 = LuffyStudent("张全蛋","",38)

#对象:特征与技能的结合体
#类:类是一系列对象相似的特征与相似的技能的结合体

一、类中的数据属性:是所有对象共有的,,内存地址是一样的

#类中的数据属性:是所有对象共有的,内存地址是一样的
print(LuffyStudent.school,id(LuffyStudent.school))
print(stu1.school,id(stu1.school))
print(stu2.school,id(stu2.school))
print(stu3.school,id(stu3.school))

二、类中的函数属性:是绑定给对象使用的,绑定到不同的对象是不同的绑定方法

对象调用绑定方法时,会把对象本身当作第一个参数传入到self

stu1.learn()  # learn(stu1)
stu1.sleep()  # sleep(stu1)
stu2.learn()  # learn(stu2)
原文地址:https://www.cnblogs.com/nanjo4373977/p/12167193.html