类的名称空间

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()

 

posted on 2018-06-20 11:33  花豆豆  阅读(220)  评论(0编辑  收藏  举报