![](/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.