我使用的是python 2.7,下面是我的脚本的简化版本:
你知道吗执行人.py你知道吗
import sys
def someCal(num):
num = int(num)
print num*num
someCal(sys.argv[1])
所以python executor.py 13
会打印出169,它工作正常。
我还有另一个脚本,我想利用someCal()
中的executor.py
函数,所以我导入了它
你知道吗主.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])
我不知道为什么它总是提到第13行执行人.py,因为我没用那部分。你知道吗
提前谢谢!你知道吗
这是一个更好的方法,会像你一样好用通缉犯。不需要如果name='main':使用此方法。你也可以用它们调用你的函数名字。比如地址:
编辑例如:
输出:
如果使用函数,则应在函数中返回值,而不是打印。如果您返回一个值,您可以打印它稍后。但是如果您不使用return并像print num*num那样保留它,那么您以后就不能使用print函数了。你可以试试看那个。所以呢,返回值在函数中很重要。你知道吗
Python是关于清晰代码的最佳语言,因此您应该保持清晰,sys对您来说不是必需的。如果name='main':这个语句,请记住每个.py文件都是一个模块,所以如果可以导入任何没有该语句的模块,比如import random;然后您可以导入自己的模块我也是。只是注意它们必须保持在同一个目录中,以便Python可以找到您自己的模块/文件。保持简单:-)
当然,输出是相同的,您可以编写任何您想要的内容,而不是ChuckNorris,但请确保该名称不会与程序中的另一个函数名重叠。例如,您有一个名为.py的.py文件数字.py,您将把这个文件导入另一个文件,但是您不能确定在另一个文件中是否有名为Number的函数,因此您可以像调用import Number那样调用它,这样您就可以避免这个问题。你知道吗
当你
import executor
在主.py它实际上在做python executor.py
,我建议你改变你的执行人.py收件人:而且,在直接使用
sys.argv[1]
之前,您可能需要添加像if len(sys.argv)>1
这样的防御代码相关问题 更多 >
编程相关推荐