'进口'命令,定义变量

时间:2014-09-17 06:26:45

标签: python variables import

我有一个名为main.py的程序,我在其中定义了几个变量a,b,c等,我也有一个程序说,xyz.py,其中我写了几个print语句,函数,循环,使用变量a,b,c等的等。来自main.py.我在main.py中使用'import xyz'来调用xyz.py.但它显示错误'name a,b,c等。没有定义',这是可以理解的,因为我没有在xyz.py中定义这些变量。所以请告诉我如何在其他文件中使用变量。例如,如果我有以下内容,

main.py

a=float(input('enter the value of a :: '))
b=float(input('enter the value of b :: '))
if a>1.0:
  import xyz
else:
  print 'exit'
print wxyz(a+b)
print abc(a+b)

xyz.py

print 'a is'+`a`
print 'b is'+`b`
def wxyz(a):
  return 2*a
def abc(b):
  return 4*b
print wxyz(a)
print abc(b)
while a>b:
  print a+b
  print wxyz(a*b)
  print abc(a*b)

3 个答案:

答案 0 :(得分:2)

显而易见的方法是重组xyz.py,例如:

def main(a, b):
    print 'a is {0!r}'.format(a) # backticks for repr are deprecated
    print 'b is {0!r}'.format(b)
    print wxyz(a)
    print abc(b)
    # ... etc. 

def wxyz(a):
  return 2 * a # whitespace per PEP-0008

def abc(b):
  return 4 * b

if __name__ = '__main__': # when script is run directly, not imported
    main(1, 2) # or whatever values 

现在,在导入脚本时没有任何内容可以直接运行,您仍然可以从xyz.main(a, b)调用main.py,并显式传递值。

答案 1 :(得分:0)

我已从main.py中删除了一些功能,以简化操作。我也执行了这些程序。 main.py文件是:

 import xyz
a=float(input('enter the value of a :: '))
b=float(input('enter the value of b :: '))
if a>1.0:
  import xyz
else:
  print 'exit'

,你的xyz.py文件是:

from main import a
from main import b
print 'a is',a
print 'b is',b
def wxyz(a):
  return 2*a
def abc(b):
  return 4*b
print wxyz(a)
print abc(b)
while a>b:
  print a+b 

你得到的输出是:

enter the value of a :: 12
enter the value of b :: 12
a is 12.0
b is 12.0
24.0
48.0
enter the value of a :: 0
enter the value of b :: 0
exit

现在这就是你想要我的朋友吗?

答案 2 :(得分:-1)

我想,你不想导入而是执行py代码?然后你必须使用execfile命令

execfile( "xyz.py")

但我定义推荐一种更面向对象的方法,您可以在其中导入类,创建它的实例并访问它的值。