簡體   English   中英

Python中getter和setter的function是什么?

[英]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 用於

  1. 添加有關獲取和設置值的驗證邏輯。
  2. 避免直接訪問 class 字段

請閱讀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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM