さて、タイトルが言うように、私はインポートのグループを取得し、すべてがクラスをインポートし、すべてそれを実行するスクリプトと同じフォルダーにあります。
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
idk なぜそれが原因ですが、それは 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")