python中的实例属性和类属性

在python中,类属性和实例属性的区别是什么?

我认为是作用域的不同,实例对象可以访问类属性,类对象不可以访问实例属性。(类的概念本身就是作用域的概念,你不能让一只猫会飞,猫属于猫类,这一类都不会飞。所以“飞”这种方法,猫类不具有)

比如:

class People(object):
    name = 'Tom'  # 公有的类属性

    __age = 12  # 私有的类属性
    #  实例属性
    def __init__(self,height):
        self.height = height

p = People("183cm")

print(p.name)  # 正确,实例对象可以访问类属性

print(People.name)  # 正确,类对象可以访问类属性

print(People.height)  #  错误,类对象不能访问实例属性

 

posted @ 2019-07-16 11:58  年轻人——001  阅读(1713)  评论(0编辑  收藏  举报