[英]What is the function of getters and setters in Python?
我剛開始學習OOP(pythonic方式)。 我對 Python 中的 getter 和 setter 的 function 完全感到困惑。 getter 和 setter 是否將私有變量轉換為公共變量(或者我完全錯了)?
Python 語言不像其他 OOPL 那樣支持私有屬性,即所有屬性都可以公開訪問。
按照慣例,Python 程序員在屬性名稱前加上前導下划線 ( _
) 以暗示該變量是“私有的”。 一個例子是_internalFlag
。
請閱讀https://dbader.org/blog/meaning-of-underscores-in-python關於前導和尾隨下划線的含義和約定。
Setter 和 getter 用於:
請閱讀https://www.geeksforgeeks.org/getter-and-setter-in-python/了解更多信息。
例子:
class Student:
def __init__(self):
self._age = 0
self._underage = None
# Getter
@property
def age(self):
"""Return the age of the student"""
return self._age
# Setter
@age.setter
def age(self, value):
self._underage = True if value < 18 else False
self._age = value
a = Student()
b = Student()
a.age = 20
b.age = 12
print(a.age)
print(a._underage)
print(b.age)
print(b._underage)
Output:
20
False
12
True
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.