가져 오기 전까지 원하는 방식으로 작동하는이 코드 (Reset.py)가 있습니다. 가져 오지 않고가져 오기를 사용하여 전역 재설정
class Res(object):
defaults={}
class NoKey: pass
def __init__(self):
for key, values in defaults.items():
globals()[key]=values
def add_defaults(key, values):
Res.defaults[key]=value
def remove_defaults(key=NoKey, remove_all=False):
if remove_all:
Res.defaults={}
else:
del Res.defaults[key]
:
>>> a=54
>>> Res.add_default('a', 3)
>>> Res()
<__main__.Res object at 0x>
>>> a
3
>>> #great! :D
오기로 : 이것은 __main__
를 재설정 아래에 전역()을 변경하지 가져올 때 의미합니다
>>> a=54
>>> Res.add_default('a', 3)
>>> Res()
<Reset.Res object at 0x>
>>> a
54
. 이 문제를 어떻게 해결할 수 있습니까?
[remove_defaults에서 Res.defaults에 편집 디폴트 (기본값은 전역 변수 아니었다).]
가능한지 알고 싶었지만 귀하의 요지를 보았습니다. 고맙습니다. – what
짧은 대답은 아니오입니다. 메서드는 호출되는 모듈을 알지 못합니다. 실제로, 매우 개념을 정확하게 정의하는 것이 어렵습니다. –