两个.py文件,to_be_imported.py
有:
def func(a):
b = a + "!!!"
c = b + " Mike!!!"
print c
import.py
有:
from to_be_imported import *
func("hey")
但是当我尝试访问变量b
时,我收到错误AttributeError: 'NoneType' object has no attribute 'b'.
。
如何在赋予函数值b
后获取"hey"
的值?
答案 0 :(得分:0)
to_be_imported 不的变量 b 。程序中唯一的 b 是 func 的本地,并在退出该函数时消失。执行此操作的规范方法是:
def func(a):
b = a + "!!!"
c = b + " Mike!!!"
print c
return b
...
from to_be_imported import *
local_b = func("hey")
还有其他方法可以做到这一点。例如,您可以将 b 设为 to_be_imported 的全局变量,然后使用类似
的内容访问它print to_be_imported.b
然而,这通常不是一个好主意。另外,请注意,使远程功能同时打印输出并返回值并不是一个好主意。模块和传递信息非常酷,但请确保遵循教科书或教程中的建议,以免日后出现调试问题。
答案 1 :(得分:0)
您可以考虑返回该值,如下例所示:
def add_one(numb):
"""Given a number, add one and return it."""
r = numb +1
return r
另请注意,执行from module import *
通常是不好的做法,因为它可能会覆盖执行该导入的模块中的函数。
您可以尝试仅导入所需内容,例如:from mymodule import func, func_two, func_three