这是一个关于良好编程风格的问题。我通常使用Java,现在我在使用Python。在Python中,如果您只想从中读取全局变量,则无需移交全局变量。另一方面,我认为Java语法在他的方面更有帮助。您必须移交所需的变量,这样您就可以看到哪些变量被哪种方法使用,我相信这对于正在阅读您的代码的人有用。
现在你在Python中移交变量虽然你已经可以访问它们了,因为它们是全局的吗?什么是好的' pythonic'方式是什么?
谢谢,
零
def foo(a):
a = 2
foo(1)
1被移交'方法foo()。
答案 0 :(得分:2)
是的,这个
def foo(a):
a = 2
foo(1)
优先于此
a = 1
def foo():
a = 2
foo()
想象一下,你有三种方法可以对列表做些什么。
a_list_name = []
def a()
a_list_name.something
def b()
a_list_name.something
def c()
a_list_name.something
a()
b()
c()
如果您定义列表'global',则必须在每个方法中引用该确切列表。如果由于某种原因想要更改列表名称,则现在必须编辑所有3种方法。
但是,如果通过参数传入列表,则只需编辑方法调用,方法代码可以保持不变。喜欢这个
def a(l)
l.something
def b(l)
l.something
def c(l)
l.something
my_list = []
a(my_list)
b(my_list)
c(my_list)
这使您的代码更加模块化,并且最重要的是它使您的代码(方法)可测试因为它们不依赖于在其他地方定义的某个变量