[英]is it possible to import a variable inside a function from one python script to another python script?
[英]Cant import variable from one script to another in python
我有两个python脚本
emotion.py
if __name__ == '__main__':
user=raw_input("Enter your name\n")
print("Calling open smile functions.....")
subprocess.Popen("correlationSvg.py", shell=True)
correlationSvg.py
from emotion import user
import os
import csv
with open('csv/test/'+user+'.csv') as f:
reader = csv.DictReader(f, delimiter=';')
rows = list(reader)
我遇到错误
ImportError:无法导入名称用户
为什么会这样呢?
变量user
是在if __name__ == '__main__'
块中定义的。 当执行import语句时,不会执行这一操作。
您当然可以定义一个(脚本)全局变量
user = ""
if __name__ == '__main__':
user=raw_input("Enter your name\n")
print("Calling open smile functions.....")
subprocess.Popen("correlationSvg.py", shell=True)
如果您想在执行时吸引用户,我要么把
user=raw_input("Enter your name\n")
进入correlation.py
或:
in sympathy.py:
def get_user():
user=raw_input("Enter your name\n")
并从correlation.py
访问此函数。 只需记住: import
语句在您调用解释器时发生,而用户分配在运行时发生。
因为您正在使用if __name__ == '__main__'
。 如果文件是从另一个模块导入的, __name__
设置为模块的名称。 这意味着,仅当您运行emotion.py
才会处理该缩进中的代码。
有关__name__
详细说明,您可以在这里看。
您可以尝试这样做,以强制user
成为全局user
:
user = ''
if __name__ == '__main__':
user=raw_input("Enter your name\n")
但是...您应该真正考虑您在这里做什么。 如果您不希望设置user
除非这是主模块),那么从另一个模块导入用户时会发生什么?
可能您应该将此作为参数传递给函数,而不要尝试将其导入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.