鉴于此模块(sample.py):
def calculation(x):
r = x + 1
return r
在Spyder的主.py文件中,我这样称呼它:
import sample
b = sample.calculation(2)
我的(愚蠢)问题是: 如何访问r,如示例模块中所定义的那样,用于主要.py文件中的其他计算,我从中调用样本?
我想继续做类似的事情:
a = r/2
调用后,在主.py文件中
sample.calculation(2)
更新
我认为b会导致数字3。 但是如果模块返回2个不同的数字(对象)怎么办?我如何单独访问它们?
答案 0 :(得分:1)
我的(愚蠢)问题是:如何在示例模块中定义的r中访问主要.py文件中的其他计算,我从中调用样本?
您使用您为该值指定的b
变量。
但是如果模块返回2个不同的数字(对象)怎么办?我如何单独访问它们?
如果您的意思是该功能执行此操作:
def return_two_things():
return 1, 2
然后将它们分配给两个变量:
a, b = module.return_two_things()
如果您的意思是该功能执行此操作:
def wrong_way():
return 1
return 2
那么你的功能是错误的,你误解了return
语句是如何工作的。一旦函数执行return
,函数就会结束;它不会继续返回更多东西。
答案 1 :(得分:1)
通过使其成为全局变量,可以访问另一个模块的变量。但这不是一个好的做法,而且经常避免。你可以这样做
import sample
r = sample.calculation(2)
这样,您可以使用相同的变量名称' r'但它现在是一个局部变量。
关于从模块返回多个对象的第二个问题,你可以这样做
def module1(x):
return x+1,x+2
a,b = module1(5)
#a has 5+1 = 6
#b has 5+2 = 7