В большинстве других языков программирования у вас будет либо нулевой параметр, либо два параметра:
int main(char *argv[], int argc)
Для обозначения аргументов, переданных параметру. Однако в Python они доступны через модуль sys
:
import sys
def main():
print(sys.argv, len(sys.argv))
Но тогда вы могли бы расширить это так, чтобы вы проходили через argv и argc в вашу функцию python, подобно другим языкам yes:
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
глобальными переменными? И хорошая практика предполагает, что они находятся в верхней части вашего файла (и множество других свойств - они постоянны и т. Д.), И вам не нужно передавать их в качестве аргументов.