类的名称空间
class Person: animal = '灵长类动物' soup = '会思考' def __init__(self,name,age,sex,high,weight): self.name = name self.age = age self.sex = sex self.high = high self.weight = weight print('beautifully') def work(self): print('人类会工作') 类从上到下执行时,会现在内存中开辟一块空间,将类独有的内容加载到自己的空间中 p1 = Person('alex',22,'male',177,133) # 实例化一个对象 print(p1.animal) # p1这个对象找animal静态变量时,先在自己的对象空间去找,没有则调用类对象指针,去类空间找 灵长类动物 print(p1.name) #自己空间有的就直接调用自己空间的 alex print(p1.age) 22
1、在内存中,类从上到下依次加载到内存中,并且开辟一个类的内存空间。
2、实例化一个对象的时候,会在内存中重新开辟一个空间,将对象本身的属性都加载到自己的内存空间中。
3、在对象的内存空间当中,有一个类对象指针,在通过对象调用本身属性时,会直接在对象内存空间中去找,如果调用类的静态变量,在先去对象内存空间去找,如果没有则找类对象指针,通过类对象指针再去类空间去找。
练习题:
1 要求达到如下效果: 2 3 """ 4 小明,22,男,上山去砍柴 5 小明,22,男,开车去东北 6 小明,22,男,最爱大保健 7 老李,69,男,上山去砍柴 8 老李,69,男,开车去东北 9 老李,69,男,最爱大保健 10 """ 11 class Person: 12 def __init__(self,name,age,sex): 13 self.name = name 14 self.age = age 15 self.sex = sex 16 def chop_wood(self): 17 print('%s,%s,%s,上山去砍柴'%(self.name,self.age,self.sex)) 18 19 def d_car(self): 20 print('%s,%s,%s,开车去东北'%(self.name,self.age,self.sex)) 21 22 def h_care(self): 23 print('%s,%s,%s,最爱大保健'%(self.name,self.age,self.sex)) 24 25 xm = Person('小明',22,'男') 26 ll = Person('老李',69,'男') 27 xm.chop_wood() 28 xm.d_car() 29 xm.h_care() 30 ll.chop_wood() 31 ll.d_car() 32 ll.h_care()