我试图简化我的一些代码,并想知道哪些值作为参数传递给函数时会导致该参数默认为设置值(如def
语句中所定义)。例如:
在我的一个课程中,我有以下功能
def scrape(self, search_term='animals'):
除了没有任何值之外的任何值都可以传递给scrape
函数,该函数将导致函数使用它的默认值(动物)?
在我的主类的下面的函数中,我使用一个默认设置为None
的变量调用该函数,我认为这会导致scrape
使用animals
但是它实际设置search_term=None
def list_channels(query=None):
live_source = exploreorg.Site()
links = live_source.scrape(query)
是否有一些值可以传递给scrape
函数来启用此行为,还是我唯一的选择来执行if / else?
def list_channels(query=None):
live_source = exploreorg.Site()
if query is None:
links = live_source.scrape()
else:
links = live_source.scrape(query)
我觉得这太笨重了,但如果这是最好的方式,那么我就可以了。我想有一种更好的方法可以完成我想要做的事情。
答案 0 :(得分:1)
Python仅在没有传递值时使用默认值。为避免重复该值,您可以使用None
作为默认值吗?
def scrape(self, search_term=None):
search_term = search_term or 'animals'
def list_channels(query=None):
live_source = exploreorg.Site()
links = live_source.scrape(query)
或重用变量?
DEFAULT_SEARCH_TERM = 'animals'
def scrape(self, search_term=DEFAULT_SEARCH_TERM):
...
def list_channels(query=DEFAULT_SEARCH_TERM):
live_source = exploreorg.Site()
links = live_source.scrape(query)