gpt4 book ai didi

python - 在 Python 的 main() 中调用参数是不好的做法吗

转载 作者:太空狗 更新时间:2023-10-30 00:08:57 25 4
gpt4 key购买 nike

函数名称 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。这可能发生在两种情况下:

  1. 您从其他函数多次调用 main。
  2. 您已经在 main 之外创建了您想要传递的变量。

第 1 点绝对是不好的做法。 main 应该是唯一的,并且只在程序开始时调用一次。如果您需要多次调用它,那么 main 中的代码不属于 main 中。拆分它。

第 2 点可能看起来很有道理,但您可以在实践中做到这一点:

def main(a, b):
print(a, b)

if __name__ == '__main__':
x = 4
y = 5
main(x, y)

但是 xy 不是全局变量吗?好的做法是假设这些位于文件的顶部(以及多个其他属性 - 它们是常量等),并且您不需要将它们作为参数传递。

关于python - 在 Python 的 main() 中调用参数是不好的做法吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53204814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com