命名空间
class Course: language = 'Chinese' def __init__(self,teacher,name,period,price): self.teacher = teacher self.name = name self.period = period self.price = price print(Course.language) python = Course('wangys','python','6 months',20000) print(python.language)
静态属性
- 类的属性和方法可以被类调用,也可以被对象调用
- 类的静态属性当使用类进行修改时,使用字典的方式修改时不允许的,但可以通过 类名.属性=。。。 进行修改
- 通过
类的静态属性可以被类调用,也可以被对象调用
class Course: language = 'Chinese' def __init__(self,teacher,name,period,price): self.teacher = teacher self.name = name self.period = period self.price = price print(Course.language) # 类调用 python = Course('wangys','python','6 months',20000) print(python.language) # 对象调用 # 不论是类调用还是对象调用,都是可以的
类的静态属性当通过类进行修改的时候,只能通过 类命.属性的方式进行修改
class Course: # 定义了一个课程类 language = 'chinese' # 有一个语言静态属性 def __init__(self,teacher,name,period,price): # ————init__方法有老师,课程名称,周期,价格等 self.teacher = teacher self.name = name self.period = period self.price = price Course.language = 'EN' # 通过类名.属性方式修改 print(Course.language)
# EN Course.__dict__['language'] = 'chinese' # 通过字典的方式修改不允许 print(Course.language)
# TypeError: 'mappingproxy' object does not support item assignment