类的命名空间
属性
类里面可以定义两种属性:静态属性和动态属性。
通过实例来看下:
class Course: language = '中文'#静态属性 def __init__(self,teach,course_name,period,price): self.teach = teach self.course_name = course_name self.period = period self.price = price Course.language = '英语'#修改静态属性 print(Course.language) python = Course('套你大象','python','9天',1000000) print(python.language)#类中的静态变量可以被对象和类调用。
当我们在创建一个类的时候,我们是实例化对象的时候。优先级是先从对象本地开始找变量的,如果在对象中找不到,则会在对应的类中去找。所以无论是使用类或者对象都可以找到静态对象。
但是当我们使用类去操作对象时就不行了,因为他们之间时单项的。
注意:对于不可变的数据类型来说,类变量最好用类来操作。因为如果你使用对象对静态属性进行修改之后,你将再也调不到类里面的对于的静态属性了。
对于可变数据类型来说,例如列表。
对列表中的值进行修改不会改变列表的内存地址,只会改变内部元素的内存地址。不会影响从对象到类的指针。所以使用类和对象去修改是共享的,赋值是独立的。赋值就是将language这个属性进行重新赋值,直接改变从对象到类的指向地址。