gpt4 book ai didi

python - 程序运行正常,但无法使用 IndexError 导入

转载 作者:行者123 更新时间:2023-11-28 22:46:18 26 4
gpt4 key购买 nike

我使用的是 python 2.7,以下是我的脚本的简化版本:

执行器.py

import sys 

def someCal(num):

num = int(num)
print num*num

someCal(sys.argv[1])

所以 python executor.py 13 会打印出 169,它按预期工作。我还有另一个脚本,我想在 executor.py 中使用 someCal() 函数,所以我将其导入

主要.py

import executor

to_count = 999
executor.someCal(to_count)

执行python main.py时出现如下错误信息:

  File "main.py", line 3, in <module>
import executor
File "/Users/mac/executor.py", line 13, in <module>
someCal(sys.argv[1])

我不知道为什么它一直提到 executor.py 中的第 13 行,因为我没有使用那部分。

提前致谢!

最佳答案

from executor import *

这是一个更好的方法,可以按照您的意愿正常工作。不需要 if name == 'ma​​in': 使用此方法.你也可以用他们的名字来调用你的函数。比如:

from executor import *
print (someCal(10))

编辑例如:

executor.py

def someCal(num):
num = int(num)
return num*num

another.py

from executor import *

print (someCal(10))

输出:

>>> 
100
>>>

如果您使用函数,您应该在函数中返回一个值,而不是打印。如果您返回一个值,您可以稍后打印它。但是如果您不使用return并且只是像print num*num那样保留它,那么您以后不能将其与打印功能一起使用。你可以试试看。所以,返回值在函数中很重要。

For your second question, check this one: What does if __name__ == "__main__": do?

Python 是关于清晰代码的最佳语言,所以你应该保持清晰,sys 对你来说不是必需的。而且你不需要 if name == 'ma​​in': 这个语句,记住每个 .py 文件都是一个模块,所以如果你可以导入任何没有该语句的模块,比如import random;然后你也可以导入你自己的模块。只要关心它们必须留在同一个目录中,这样 Python 就可以找到你自己的模块/文件。保持简单:-)

Another import method for a module is:

import executor as ChuckNorris

print (ChuckNorris.someCal(10))

输出当然是一样的,你可以写任何你想要的而不是 ChuckNorris,但要确保该名称不与程序中的另一个函数名称重叠。例如你有一个名为 Number.py 的 .py 文件,你将把这个文件导入另一个文件,但你不能确定另一个文件中是否有任何名为 Number 的函数,所以你可以这样调用它导入 Number as whatyouwanttocallit 您将避免这些问题。

关于python - 程序运行正常,但无法使用 IndexError 导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27664543/

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