不同于 C# 和 Java 这种语言的get , set属性定义,Python 是用@property声明属性, 具体用法如下:
class Person(object):
name = 'liming' # 类变量
def __init__(self, name, age):
self.name = name # 实例变量
self.age = age
self.__job = 'doctor' # 私有变量
@staticmethod # 静态方法 实际上个跟类没什么关系,需传 self 参数
def eat(self):
print("%s is eating %s" % (self.name, 'apple'))
@classmethod # 类方法 调用类变量
def drink(self):
print("%s is drinking %s" % (self.name, 'cola'))
@property # 属性
def career(self):
print("%s has a %s job" % (self.name, self.__job))
@career.setter # 给属性赋值
def career(self,job):
self.__job = job
print("set %s job is %s" % (self.name, self.__job))
@career.deleter # 删除属性
def career(self):
del self.__job
print("删完了")
jack = Person('jack', 18) # 类的实例化
jack.eat(jack) # 静态方法的调用
jack.drink() # 类方法的调用
jack.career # 属性的调用
jack.career = 'IT' # 属性的修改
jack.career # 属性修改后的调用
del jack.career # 属性的删除
# jack.career
运行结果:
jack is eating apple
liming is drinking cola
jack has a doctor job
set jack job is IT
jack has a IT job
删完了