类属性和对象属性操作

almet = 2
telma = 3
class Telma:
    telma = 1
    lem = ["a","b"]
    def __init__(self,name):
        self.name = name
    def sing(self):
        print("%s is singing" %(self.name))
    def test(self):
        print("~~~~~",telma)

t = Telma("Alex")
t.sing()  #Alex is singing
print(Telma.__dict__) #类字典里包括属性变量和函数变量
#{'__module__': '__main__', 'telma': 1, '__init__': , 'sing': , '__dict__': , '__weakref__': , '__doc__': None}
print(t.__dict__) #对象字典只有属性变量
#{'name': 'Alex'}
print(t.telma) # 1 对象没有的属性在类内部上一层去找
t.telma = 2
print(t.__dict__) #增加对象属性变量到对象字典

#print(t.almet) #报错,但是不会去外边找
print(Telma.telma) #1
t.test()  #~~~~~~3  只有用.才是引用类变量和对象变量,没有点还是引用普通变量,所以不会引用类内部的telma,找到程序的普通变量
def test1():
    print("添加对象函数,但是最好不要这么用")
t.test=test1
print(t.__dict__)  #{'name': 'Alex', 'telma': 2, 'test': }

 

转载于:https://www.cnblogs.com/telma/p/10594368.html

你可能感兴趣的:(类属性和对象属性操作)