**
property属性:就是负责把一个方法当作属性进行使用,简化代码
**
装饰器方式:
#!/user/bin/env python3
#-*-coding:utf-8 -*-
class Sudent(object):
def __init__(self):
# 私有属性只能在类内调用
self.__age = 0
@property
def age(self):#获取私有变量值
return self.__age
@age.setter
def age(self,new_age):#设置值 此装饰器开头的名字(age)要和获取函数名一致
self.__age = new_age
student = Sudent()
print(student.age)#结果为0
student.age = 1 #此时调用第二个age函数
print(student.age)#结果为1
类属性方法:
#!/user/bin/env python3
#-*-coding:utf-8 -*-
class Sudent(object):
def __init__(self):
# 私有属性只能在类内调用
self.__age = 0
def get_age(self):#获取私有变量值
return self.__age
def set_age(self,new_age):#设置值 此装饰器开头的名字(age)要和获取函数名一致
self.__age = new_age
age = property(get_age,set_age)
student = Sudent()
print(student.age)#结果为0
student.age = 1
print(student.age)#结果为1

本文比较了Python中使用@property装饰器实现的实例属性和类属性的方法,展示了如何通过@property简化代码并理解其在私有变量管理和getter/setter的作用。
229

被折叠的 条评论
为什么被折叠?



