好吧,正如标题所说,我有一组导入,所有导入一个类,都在与运行它的脚本相同的文件夹中:
from lvl import lvl
from get import get
from image import image
from video import vid
from video import MLStripper
from system import system
from setting import setting
from listsearch import lists
python3 没有 reload iirc 但有 imp.reload() 但它似乎不起作用,
它只是抛出一个错误,说它不是模块(它是一个类,所以它不起作用)
在导入的那些类中的每一个小编辑之后,我都需要重新启动脚本
有没有办法重新加载/重新导入类来显示编辑的效果而无需启动脚本或重写大部分脚本以便 imp.reload() 工作?
python3,linux(但如果它也适用于窗口则更喜欢)
编辑1:
示例:如果我使用:
import system
system.system.temp()
它返回:
65°C
如果我将其更改为显示°F并使用 imp.reload 重新加载
imp.reload(system)
system.system.temp()
它返回:
149°F
所以,它可以工作,但如果我使用
import system as _system
from system import system
system.temp()
它返回:
65°C
然后我将其更改为显示°F并使用 imp.reload 重新加载
imp.reload(_system)
from system import system
system.temp()
它仍然返回
65°C
但是,如果我这样称呼它:
_system.system.temp()
它返回
149°F
我知道为什么会这样,但它是因为它发生在一个while循环中?
编辑2:
文件名:system.py:
在更改测试之前:
class system:
def temp():
temperature = open("/sys/class/thermal/thermal_zone0/temp","r").read()
temperature = temperature[:2]
return(temperature+"°C")
更改测试后:
class system:
def temp():
temperature = open("/sys/class/thermal/thermal_zone0/temp","r").read()
temperature = temperature[:2]
temperature = str(9.0 / 5.0 * int(temperature) + 32).split(".")[0]
return(temperature+"°C")