我目前有一个TestClass可调用的。可调用对象执行一个函数,如果任何属性等于 ,则会引发异常None。将它定义为可调用的目的是当TestClass实例被传递给另一个函数或被复制时,它将在传递之前检查所有属性是否存在,否则它将引发异常。
下面显示此逻辑的行是UsesTestClass(testClass())。
理想情况下,我希望能够执行相同的检查而不必“调用”类实例。例如,UsesTestClass(testClass)。是否有魔术方法或其他方法来配置类,以便在作为参数传递之前能够执行函数?
class TestClass:
def __init__(self):
self.name = None
def run(self):
if self.name is None:
raise Exception("'name' attribute is 'None'")
def __call__(self):
self.run()
return self
def UsesTestClass(testClass):
print(testClass.name)
testClass = TestClass()
testClass.name = "Hello"
UsesTestClass(testClass())
PIPIONE
慕运维8079593
随时随地看视频慕课网APP
相关分类