类中特殊的属性和方法【掌握】

实例属性和类属性

实例属性【对象属性】和类属性的区别

​ a.定义的位置不同:类属性直接定义在类中,实例属性定义在构造函数中

​ b.访问方式不同:实例属性必须用对象访问,类属性可以使用类名或者对象访问

​ c.在内存中出现的时机不同:类属性随着类的出现而出现,实例属性随着对象的出现而出现【在代码中,类优先于对象出现的】

​ d.调用的优先级不同:如果类属性和实例属性重名的情况下,对象优先调用实例属性

代码演示:

class Person(object):
    #1.定义的位置不同
    # 类属性:直接定义在类中
    name = "abc"
    num = 10

    #实例属性:定义在构造函数中
    def __init__(self,name):
        self.name = name

#2.调用的方式
#类属性:对象.属性  或者  类名.属性
#实例属性;对象.属性
p = Person("javk")
#3.优先级不同:实例属性的优先级高

print(p.name)
print(Person.name)

del p.name
print(p.name)

print(p.num)

#总结;如果是多个对象的共享数据,则定义为类属性,如果是对象特有的数据,则定义为实例属性

#注意:尽量避免类属性和实例属性重名

猜你喜欢

转载自www.cnblogs.com/allwell/p/10000527.html