![](/img/trans.png)
[英]Can python load data from a file "on demand" when a variable is accessed?
[英]Running code when a variable is accessed in Python
我有一個類人。 如果在 Person.sitting == True 時訪問了它的 running_speed 變量,則它必須拋出 SittingError。
class SittingError(Exception):
pass
class Person:
def __init__(self):
self.sitting = False
self.running_speed = 4
bob = Person()
print(bob.running_speed) # Works fine, he's not sitting
bob.sitting = True
print(bob.running_speed) # Throws SittingError, as running_speed was accessed while sitting
我該如何實現?
您可以使用@property
裝飾器並在 getter 中拋出異常,如果sitting == true
。
class SittingError(Exception):
pass
class Person:
def __init__(self):
self.sitting = False
self._running_speed = 4
@property
def running_speed(self):
if self.sitting:
raise SittingError()
return self._running_speed
@running_speed.setter
def running_speed(self, speed):
self._running_speed = speed
bob = Person()
print(bob.running_speed) # Works fine, he's not sitting
bob.sitting = True
print(bob.running_speed)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.