chzhiyi / -KnowledgeShare

6 stars 1 forks source link

20190412 - 面向对象类属性与实例属性,类方法和实例方法 - huasheng #51

Open huashengcaicai opened 5 years ago

huashengcaicai commented 5 years ago

基本概念

类属性是指定义在类属性里,实例属性定义在方法里的

分享要点:1.主要是类对像和实例对象它们属性的访问问题 2.类对象能否修改实例属性,实例对象能修改类属性

解答:类对象不可访问实例属性,实例属性可以访问类属性,代码示例如下:

class Animal(object):
    colour = 'red '  # 类是属性
    def __init__(self):
        self.name = '小花' # 方法里的属性,实例属性

a = Animal.colour  # 类对象类属性可以
b = Animal.name    # 类对象不能访问实例属性 
print(a)
print(b)

class Person(object): country = 'china' #类属性 def init(self,name): self.name = name

agou = Person('阿狗') Person.country = '日本' # 类属性修改后,实例对象在访问类属性就是更新后的了 print(agou.country) agou.country = '美国' # 实例对象也可以访问,类属性,此时通过实例对象修改类属性 print(agou.country) # 这里指的被实例对象修改的类属性后,看看实例对象属性打印出来,看是否修改 print(Person.country) # 这里是指实例对象修改了类属性,那么类对象访问类属性,看看是否被修改,发现这里并没有修改,总结一下,类属性要通过类去修改