Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从另一个py调用py脚本将打印该值_Python - Fatal编程技术网

Python 从另一个py调用py脚本将打印该值

Python 从另一个py调用py脚本将打印该值,python,Python,您好,我是第一次编写python: 我有一个现有的getprop.py脚本,用于加载属性文件并打印给定属性的值: import sys import util if len(sys.argv) < 3: print "Error! Usage is: getprop.py [propfile] [propname]" sys.exit(1) props = util.loadprops(sys.argv[1]) if sys.argv[2] in props:

您好,我是第一次编写python:

我有一个现有的getprop.py脚本,用于加载属性文件并打印给定属性的值:

import sys
import util

if len(sys.argv) < 3:
    print "Error! Usage is: getprop.py [propfile] [propname]"
    sys.exit(1)

props = util.loadprops(sys.argv[1])
if sys.argv[2] in props:
    print props(sys.argv[2]);
导入系统 导入util 如果len(sys.argv)<3: 打印“错误!用法为:getprop.py[propfile][propname]” 系统出口(1) props=util.loadprops(sys.argv[1]) 如果道具中的sys.argv[2]: 打印道具(sys.argv[2]); 现在我需要在另一个py脚本中获取属性的值,因此我修改了上面的脚本,这样我就不会干扰它的功能,并且可以在另一个脚本中使用它:

import sys
import util

def getpropvalue(propfile, propname):
    props = util.loadprops(propfile)
    if propname in props:
    return props[propname]

if len(sys.argv) < 3:
    print "Error! Usage is: getprop.py [propfile] [propname]"
    sys.exit(1)

else:
    print getpropvalue(sys.argv[1], sys.argv[2]);
导入系统 导入util def getpropvalue(propfile,propname): props=util.loadprops(propfile) 如果道具中的道具名称: 返回道具[道具名称] 如果len(sys.argv)<3: 打印“错误!用法为:getprop.py[propfile][propname]” 系统出口(1) 其他: 打印getpropvalue(sys.argv[1],sys.argv[2]); 然后在另一个脚本中,我导入getprop并调用getprop.getpropvalue(FILE\u NAME,PROP\u NAME)这样的方法,它在屏幕上打印属性的值


为什么它会打印值?有没有更好的方法来解决这个问题?

有一种方法可以仅在直接调用脚本时运行脚本。将这些行添加到
getprop
代码的末尾:

if __name__ == "__main__":
    main()
这样,只有在直接运行脚本(不导入)时才会调用
main
函数。这就是你要找的吗?

一些解释:每个正在运行的脚本都有一个
\uuu name\uuuuuuuuuu
变量,该变量将被设置为
“\uuuuuu main\uuuuuuuuuu”
,如果您从IDE或控制台(如
python script.py

)运行脚本,则只有在直接调用脚本时才可以运行脚本。将这些行添加到
getprop
代码的末尾:

if __name__ == "__main__":
    main()
这样,只有在直接运行脚本(不导入)时才会调用
main
函数。这就是你要找的吗?

一些说明:如果您从IDE或控制台(如
python script.py
运行脚本,则每个运行脚本都有一个
\uuu name\uuuuuuuuu
变量,该变量将被设置为
“\uuuuu main\uuuuuuuuu”
,将getprop.py更改为:

import sys
import util

def getpropvalue(propfile, propname):
    props = util.loadprops(propfile)
    if propname in props:
    return props[propname]

if __name__ == '__main__':
    if len(sys.argv) < 3:
        print "Error! Usage is: getprop.py [propfile] [propname]"
        sys.exit(1)

    else:
        print getpropvalue(sys.argv[1], sys.argv[2]);
导入系统 导入util def getpropvalue(propfile,propname): props=util.loadprops(propfile) 如果道具中的道具名称: 返回道具[道具名称] 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu': 如果len(sys.argv)<3: 打印“错误!用法为:getprop.py[propfile][propname]” 系统出口(1) 其他: 打印getpropvalue(sys.argv[1],sys.argv[2]);
这将阻止代码在导入时执行。

将getprop.py更改为:

import sys
import util

def getpropvalue(propfile, propname):
    props = util.loadprops(propfile)
    if propname in props:
    return props[propname]

if __name__ == '__main__':
    if len(sys.argv) < 3:
        print "Error! Usage is: getprop.py [propfile] [propname]"
        sys.exit(1)

    else:
        print getpropvalue(sys.argv[1], sys.argv[2]);
导入系统 导入util def getpropvalue(propfile,propname): props=util.loadprops(propfile) 如果道具中的道具名称: 返回道具[道具名称] 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu': 如果len(sys.argv)<3: 打印“错误!用法为:getprop.py[propfile][propname]” 系统出口(1) 其他: 打印getpropvalue(sys.argv[1],sys.argv[2]);
这将阻止代码在导入时执行。

预期结果是什么?请尝试:if name==“main”:然后following@SnakeFoot这是错误的有下划线,但不要渲染comments@SnakeFoot:在注释中使用反勾号以获取要呈现的下划线:
如果_uname _u=='\u u main:
预期结果是什么?请尝试:如果name==“main”:然后following@SnakeFoot这是错误的有下划线,但不要渲染comments@SnakeFoot:在注释中使用反勾号以获取要呈现的下划线:
如果_uname__=='\u uu main__u':
感谢您的解释!谢谢你的解释!