在使用 Django 一段时间后,我习惯于在声明变量时不使用
我知道我可以在所有情况下都使用
例如:
def __init__(self): ...
这个类。过去我会在 __init__
函数中声明我的变量,现在我意识到并非所有情况都需要这样做,但我不清楚何时使用它或不使用它。当尝试将一个类传递给一个变量时似乎会出现问题,在这些情况下应该使用 init 吗?我知道我可以在所有情况下都使用
__init__
,但如果没有它,我的短类看起来更整洁,因此我想知道何时可以使用它以及何时不可以使用它。例如:
class BaseScraper(object):
# whithout __init__, passing Site() to site wont work.
# site = Site()
# parser = None
def __init__(self):
self.site = Site()
self.parser = None
class Site(object):
# no trouble declaring url as a str
url = ""
def set(self, url):
self.url = url
def get(self):
return self.url
if __name__ == "__main__":
scraper = BaseScraper()
scraper.site.set('http://www.google.com')
print scraper.site.get()
Model
的__init__()
方法(或该代码块的其他部分)可自动创建实例级属性并执行一堆其他操作。Python 通常并不是这样工作的。 - millimoose__init__
中这样做。(类级别的属性有点像实例属性的默认值,但有很多限制条件。) - millimoose