是否有必要(在 Python 2.7 中)在编写函数时为全局变量创建参数?
Is it necessary (in Python 2.7) to create an argument for global variables when writing a function?
假设我在全局命名空间中声明了一个变量,并在同一命名空间中创建了一个引用该变量的函数。
name = "Franz"
def write_hi():
print(name)
write_hi()
像这样为变量 name 创建一个额外的参数有什么好处:
name = "Franz"
def write_hi(name):
print(name)
write_hi(name=name)
考虑到程序现在有一个同名的局部变量和一个全局变量要处理,这是否可能?
全局变量和函数参数的作用并不完全一致。
如果在全局范围内需要全局变量,则全局变量非常有用,这意味着多个不同的方法需要使用它,并且它要么是一个永远不会改变的常量,要么是一个需要经常访问或更新的状态变量.
函数参数允许改变程序的流程。如果您有 write_hi
的参数,它将允许打印的内容从函数调用更改为函数调用。如果你不这样做,它每次都会 运行 相同的代码,或者至少你必须修改 name
变量。
他们都没有错也没有对。一切都与您在特定时刻的需求有关。
就是否可能而言——是的!您的局部变量比全局变量的范围更小,因此您将失去在该方法中访问全局 name
变量的能力。
假设我在全局命名空间中声明了一个变量,并在同一命名空间中创建了一个引用该变量的函数。
name = "Franz"
def write_hi():
print(name)
write_hi()
像这样为变量 name 创建一个额外的参数有什么好处:
name = "Franz"
def write_hi(name):
print(name)
write_hi(name=name)
考虑到程序现在有一个同名的局部变量和一个全局变量要处理,这是否可能?
全局变量和函数参数的作用并不完全一致。
如果在全局范围内需要全局变量,则全局变量非常有用,这意味着多个不同的方法需要使用它,并且它要么是一个永远不会改变的常量,要么是一个需要经常访问或更新的状态变量.
函数参数允许改变程序的流程。如果您有 write_hi
的参数,它将允许打印的内容从函数调用更改为函数调用。如果你不这样做,它每次都会 运行 相同的代码,或者至少你必须修改 name
变量。
他们都没有错也没有对。一切都与您在特定时刻的需求有关。
就是否可能而言——是的!您的局部变量比全局变量的范围更小,因此您将失去在该方法中访问全局 name
变量的能力。