关于python class中的类属性
-
类体中,函数之外定义的变量—称为类变量;
-
类体中,函数内部:以“self.变量名”的方式定义的变量—称为实例属性或实例变量;
-
类体中,所有函数内部:以“变量名=变量值”的方式定义的变量—称为局部变量。
属性的权限关系
- 定义的类只有进行实例化,也就是使用该类创建对象之后,才能得到利用。
- 总的来说,实例化后的类对象可以执行以下操作:
- 访问或修改类对象中具有的实例变量(含有该实例变量的函数被调用过才可以),甚至可以添加新的实例变量或者删除已有的实例变量;
- 调用类对象的方法,包括调用现有的方法,以及给类对象动态添加方法;
- 可以访问类变量,但不能以对象名.类变量修改类变量;(类对象修改类的不可变数据类型,只是赋值在对象自己的空间里增加一个新属性)(正常情况下,类包含的属性应该是隐藏的,只允许通过类提供的方法来间接实现对类属性的访问和操作。)
- 类对象方法也不能以对象名.类变量方式修改类变量,只能访问类变量。(可以显性使用类.类变量来修改类变量)
- 类名可以访问、修改、增删类变量;
- 类名可以直接调用类方法,以及显性传递self调用实例方法;
- 类名不可访问类实例的实例变量
类中属性示例
class VggNet:
netName = "vgg16" #类变量
nLayer = 16 #类变量
w = 5 #类变量
h = 10 #类变量
def __init__(self,name,layer): #类构造方法,也属于实例方法
self.name = name #实例变量
self.layer = layer #实例变量
print('this is conduct fun,and print