class Luffy: school = ‘luffy‘ def __init__(self, name, age, sex):#self== Luffy.__init__(‘王二丫‘, ‘20‘, ‘女‘) self.Name = name self.Age = age self.Sex = sex def lear(self): print(‘学学学‘) def eat(self): print(‘这是数字%s‘ % self.Name)#下边传入一个参数123但是123不是一个对象恰恰self默认接受对象,此时寻找Name方法找不到 print(‘吃吃吃‘) def sleep(self, x): print(x) print(‘睡睡睡‘)stu1 = Luffy(‘王二丫‘, ‘20‘, ‘女‘)stu2 = Luffy(‘张铁蛋‘, ‘38‘, ‘男‘)stu3 = Luffy(‘理三炮‘, ‘48‘, ‘男‘)#类的数据属性是所有对象共有的 如下,打印他们的id均一致print(Luffy.school, id(Luffy.school))print(stu1.school, id(stu1.school))print(stu2.school, id(stu2.school))print(stu3.school, id(stu3.school)) #什么是对象:相同的技能与特征的结合体#什么是对象:一系列对象有相似的特征与技能的结合体 #其中类的函数属性是:绑定给对象,绑定不同的对象,是绑定有不同的方法,对象绑定调用方式时,会把对象本身作为第一个参数传入进去#Luffy.eat(123) #’123‘传给了’self‘这样可以调用,但是:请看上边的相应的函数 stu1.sleep(111) #此时默认把stu1本身给了self,111给了’x’详见:上面对应的函数sleep#如果对象和类里面有着相同的名字怎么办?stu1.x = ‘from stu1‘Luffy.x = ‘from Luffy‘print(stu1.x)#会先从自己的对象内部找x如果找不到会去类或者父类里面找但是不会去全局找#如果对象内部和类里面都没有就会报错
原文地址:https://www.cnblogs.com/yuexijun/p/10230846.html
时间: 2024-11-02 14:11:44