我在otp_fun文件中有一个变量“ OTPN”,我想将该变量导入到主文件中,我尝试通过导入“从otp_fun import otpn”进行尝试,但是它抛出了错误
otp_fun file code
def otp():
new = int(random.random()*1000000)
global otpn
otpn = round(new,6)
main file code
from Contacts.otp_fun import otp,otpn
它必须导入otpn变量,但抛出错误说 “ ImportError:无法从'Contacts.otp_fun'导入名称'otpn'
答案 0 :(得分:2)
您无法导入otpn
,因为它尚未定义,您会看到它在otp
中定义,但是只有在调用该变量后,该变量才可用。
您可能认为解决方案是在全局范围内定义otpn
,其默认值如下:
otp_fun file code
otpn = None
def otp():
new = int(random.random()*1000000)
global otpn
otpn = round(new,6)
但是,如果您使用from Contacts.otp_fun import otpn
导入它,然后调用otp
,则会看到该值没有改变:(
main file code
from otp_fun import otpn, otp
print(otpn)
# prints None
otp()
print(otpn)
# prints None
要保持链接的值,您想使用import Contacts.otp_fun
导入整个模块。
main file code
import otp_fun
print(otp_fun.otpn)
# prints None
otp_fun.otp()
# changes otpn value
print(otp_fun.otpn)
# prints some random number
答案 1 :(得分:0)
您可以使用Class
:
otp_fun文件代码:
import random
class Otp():
def otp(self):
new = int(random.random() * 1000000)
global otpn
otpn = round(new, 6)
return otpn
主文件代码:
from Contacts.otp_fun import Otp
myVariable = Otp()
print(myVariable.otp())