我正在用Python创建一个类。我想从一开始就将变量设置为零,但我认为使用" username = none,password = none,url = none"效率低下。有没有办法让我创建一个新的def __init__(self):
方法,它不会接受任何参数并将所有属性设置为无?这是它目前的样子,感谢您的帮助!:
Class Broken():
#pulls from function which is what
username = none
password = none
url = none
job_url = none
headers = none
而是,我喜欢......
def __init__(self):?????
答案 0 :(得分:0)
您可以使用后备__getattr__
方法。如果属性名称在列表中,则返回None
。在以下示例中,尝试获取a,b或c的值将返回None
,除非它们已设置。
class Foo:
def __init__(self):
pass
def __getattr__(self,attrname):
if attrname in {'a','b','c'}:
return None
else:
raise AttributeError(attrname)
f = Foo()
f.a = 23
print(f.a,f.b)
打印:
23 None
尝试访问另一个未设置的属性会引发AttributeError
(我承认异常消息有点简洁)