类属性和实例属性的说明:
实例对象:通过类创建的对象
类属性:类对象所拥有的属性
实例属性:实例对象所特有的属性,类对象不能拥有,不能通过类对象来调用。它可以放在构造方法--init--()中,也可以在创建实例对象后进行绑定。
Eg:class Dog :
def --init--(self,name):
self.name=name
d1=Dog("大黄")
print(d1.name)
Eg:class Dog:
def --init--(self):
self.name="大黄"
d1=Dog()
print(d1.name)
实例属性和类属性的访问:
实例属性只能通过实例名来访问,不能通过类名访问。
类属性既可以通过类名访问,也可以通过实例名访问。
如一下实例:按照实例属性的方式分别打印出类属性和实例属性,要求打印的类属性为9,实例属性为5;按照类属性的方式打印出所以属性,要求打印的类属性值为6
Eg:class Num:
count=6
#count是类属性
#下面的num是实例属性
def --init--(self,num):
self.num=num
num1=Num(5)
num1.count=9
#可以通过实例更改类属性的值,例如上面通过实例将类属性更改为了9,但是通过类访问count的值,是不会改变的,还是原来的5
print("用实例名访问的实例属性为:",num1.num)
print("用实例名访问的类属性为:",num1.count)
print("按照类属性的方式打印出的类属性为:",Num.count)
#这里访问到的类属性的值还是原来的值5
#实例属性只能通过实例名来访问
运行结果为:
用实例名访问的实例属性为:5
用实例名访问的类属性为:9
按照类属性的方式打印出的类属性为:6
注:实例属性和类属性一般不要使用相同的名字,因为相同名称的实例属性将屏蔽掉类属性。
也可参考:
【python 实例属性和类属性-哔哩哔哩】 https://b23.tv/Z5BYIOa