四、修改和增加类属性¶
1、从内部增加和修改类属性¶
来,我们先来温习一下类的结构。
┌─────────────────┐
│ 类 │
│ ┌───────────┐ │
│ │ 变量 1 │ │
│ │ 变量 2 │ │
│ │ 变量 3 │ │
│ │ ... │ │
│ └─────┬─────┘ │
│ + │
│ ┌─────┴─────┐ │
│ │ 函数 1 │ │
│ │ 函数 2 │ │
│ │ 函数 3 │ │
│ │ ... │ │
│ └───────────┘ │
└─────────────────┘
看着这个结构,提一个问题,如何修改类属性,也就是类里面的变量?
从类结构来看,我们可以猜测,从类方法来修改,也就是从类内部来修改和增加类属性。
看下具体的实例:
class ClassA():
var1 = '两点水'
@classmethod
def fun1(cls):
print('原来的 var1 值为: ' + cls.var1)
cls.var1 = input('请输入修改 var1 的值: ')
print('修改后 var1 值为: ' + cls.var1)
cls.var2 = input('新增类属性 var2 ,请为它赋值为: ')
print('修改后 var2 值为: ' + cls.var2)
ClassA.fun1()
输出结果如下(绿色字的为我输入的值):
这里还是强调一下,例子还是要自己多写,不要只看,自己运行, 看效果。多想。
2、从外部增加和修改类属性¶
我们刚刚看了通过类方法来修改类的属性,这时我们看下从外部如何修改和增加类属性。
例子如下:
class ClassA():
var1 = '两点水'
@classmethod
def fun1(cls):
print('var1 值为: ' + cls.var1)
ClassA.fun1()
ClassA.var1 = input('请输入修改 var1 的值: ')
ClassA.fun1()
ClassA.var2 = input('请输入新增属性 var2 的值: ')
print(ClassA.var2)
输出结果如下: