类之属性查找

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如果找不到会去类或者父类里面找但是不会去全局找
#如果对象内部和类里面都没有就会报错

猜你喜欢

转载自www.cnblogs.com/yuexijun/p/10230846.html