student.get_age(
)
**如下。
from datetime import date, datetime
class
students
:def
__init__
(self, name, birthday)
: self.name = name
self.birthday = birthday
defget_age
(self)
:"""建立乙個獲取年齡的函式"""
age = datetime.now(
).year - self.birthday
return age
if __name__ ==
"__main__"
: student = students(
'bob'
, date(year=
1990
, month=
12, day=10)
)print
(student.get_age())
"""這裡返回結果29"""
from datetime import date, datetime
class
students
:def
__init__
(self, name, birthday)
: self.name = name
self.birthday = birthday
self._age =
0#def get_age(self):
#"""建立乙個獲取年齡的函式"""
#age = datetime.now().year - self.birthday.year
#return age
@property
defages
(self)
""" 這裡可以存放我們的計算邏輯,從而動態繫結age屬性"""
age = datetime.now(
).year - self.birthday
return age
@ages.setter
defages
(self, value)
: self._age = value
defprints
(self)
:print
(self.ages)
print
(self._age)
if __name__ ==
"__main__"
: student = students(
'bob'
, date(year=
1990
, month=
12, day=10)
) student.prints(
)"""這裡返回結果29,0。因為ages是經過我們的計算邏輯得到的,而self._age則是初始化的值,另外如果在外部對其賦值也是可以改變的,但是self.ages只取決於birthday的值。"""
理解不夠深刻,先記錄一下。 python property 私有屬性
加有 變數名 的私有屬性直接訪問不了,用get.和set.方法,提供個介面進行訪問。property的使用 私有屬性,用來簡化訪問私有屬性,提供開放性介面,共外界訪問 class student def init self,name,age self.name name self.age age d...
Python property裝飾器詳解
屬性的分類 1 例項屬性 最好在 init self,中初始化 內部呼叫時都需要加上self.外部呼叫時用instancename.propertyname 2 類屬性 在 init 外初始化 在內部用classname.類屬性名呼叫 外部既可以用classname.類屬性名又可以用instance...
python property 的詳細使用方法
property 有兩種使用方式裝飾器方式 官方幫助文件 property fget none,fset none,fdel none,doc none property attribute decorators make defining new properties or modifying e...