函数名称main()是否总是为空并且在函数本身内调用了参数,或者将它们作为函数的输入是可接受的,例如main(arg1,arg2,arg3)?
我知道它有效,但我想知道它是不是很糟糕的编程习惯.如果这是重复的道歉,但我看不出专门针对Python的问题.
最佳答案
在大多数其他编程语言中,您可以使用零参数或两个参数:
int main(char *argv[],int argc)
表示传递给参数的参数.但是,在Python中,这些是通过sys模块访问的:
import sys
def main():
print(sys.argv,len(sys.argv))
但是你可以扩展它,这样你就可以将argv和argc传递给你的python函数,类似于其他语言:
import sys
def main(argv,arc):
print(argv,arc)
if __name__ == '__main__':
main(sys.argv,len(sys.argv))
但是现在让我们忘记argv / argc – 你为什么要把东西传递给main.你在main之外创建一些东西,并希望将它传递给main.这可能发生在两个实例中:
>您从其他功能多次调用main.
>您已经在main之外创建了要传递的变量.
点数1绝对是不好的做法. main应该是唯一的,并且只在程序开始时调用一次.如果你需要多次调用它,那么main中的代码不属于main.拆分它.
点数2可能看起来很有意义,但是你在实践中这样做:
def main(a,b):
print(a,b)
if __name__ == '__main__':
x = 4
y = 5
main(x,y)
但那么不是x和y全局变量?好的做法会假设它们位于文件的顶部(以及其他多个属性 – 它们是常量等),并且您不需要将它们作为参数传递.