假设我有一个很长的函数,我经常想把它分解成更小的函数来提高可读性。你知道吗
class A:
def long_function(self):
self.helper1()
self.helper2()
...
return
def helper1(self):
#hardwork
...
然后我发现python函数可以在其他函数中声明,这有助于组织代码,因为它限制了helper函数的作用域,如果不需要也可以去掉self
。所以:
class A:
def long_function(self):
helper1()
helper2()
...
return
def helper1():
#hardwork
def helper2():
#more hardwork
但是,python给我发送了一个UnboundLocalError
,告诉我在赋值之前引用了'helper1'
。我知道我可以在它们的调用之上定义它们,但这会破坏所有易于阅读的目的。我也可以继续用私有方法填充我的类,但我认为这是次优的。你知道吗
你有什么建议吗?你知道吗
函数自上而下执行。
def
和其他语句一样是一个可执行语句,当执行到达它时执行。如果在函数末尾写入def helper1
,则直到函数末尾才会定义helper1
。如果直到最后才定义它,就不能在开始时使用它。你知道吗如果你想把你的方法分解成更小的方法,按照你在第一个例子中的方法来做。这没有什么不好的。您可以使用一个前导下划线(.e,
_helper1
)命名这些helper方法,以提醒用户它们不是公共API的一部分。你知道吗相关问题 更多 >
编程相关推荐