第一種寫法
-
xxx = property(getXxx, setXxx)
一般規(guī)則如上,xxx是對象可以通過“.“語法來訪問的屬性
通過property(get方法, set方法)
綁定xxx的getter和setter
這樣外部調(diào)用的時候就可以通過.xxx
進行賦值或者獲取值了。
-
代碼如下:
class Person(object):
def __init__(self):
self.__age = 18 # 這種前面加雙下劃線的是私有變量,外部無法訪問
def setAge(self, age):
self.__age = age
def getAge(self):
return self.__age
#這里是綁定age的setter/getter媒怯。
#外部就可以使用 .age來設(shè)置或者獲取__age的值了。
age = property(getAge, setAge)
p = Person()
print("age is ",p.age) # age is 18
p.age = 20
print("age is ",p.age) # age is 20
第二種寫法
-
方法名是什么,property就是什么
-
@property寫在getter方法上
-
@xxx.setter寫在setter方法上
-
要先寫get方法僚碎,在寫setter方法,順序不能亂
class Person(object):
def __init__(self):
self.__age = 18 # 這種前面加雙下劃線的是私有變量阴幌,外部無法訪問
# getter/setter的方法名相同
# getter方法在前勺阐,setter方法在后
# 方法名及時外部使用"."語法訪問的屬性
@property
def age(self):
return self.__age
@age.setter
def age(self, age):
self.__age = age
p = Person()
print("age is ",p.age) # age is 18
p.age = 20
print("age is ",p.age) # age is 20