[英]How to fix “NameError: name 'name' is not defined” in python?
[英]How to fix name is not defined in Python
我正在運行這樣的python項目:
project
Test.py
COMMON.py
SYSTEM.py
PTEST1
Hello.py
當運行代碼“Test.py”時,它會顯示 NameError,我不知道為什么?
但是,如果我將 Test.py 和 PTEST1/Hello.py 中的“from SYSTEM import *”替換為“from COMMON import *”,它會按預期工作。
#Test.py is like this:
from SYSTEM import *
myvalue.Hello.printf()
# COMMON.py is like this:
myvalue = lambda: None
from PTEST1.Hello import Hello
myvalue.Hello = Hello
# SYSTEM.py is like this:
from COMMON import *
#PTEST1/Hello.py
from SYSTEM import *
class Hello():
@staticmethod
def printf():
print("Hello1")
print(vars(myvalue))
我希望通過不更改導入代碼不會出現“NameError”。 順便說一句,我的蟒蛇是 3.6+
好的做法是以小寫形式給出文件名。
看起來您正在project/
下創建一個 Python 項目。 任何目錄都需要在每個目錄中有一個文件__init__.py
才能在 Python 中被發現。
然后您需要通過它們的全名(而不是相對命名)來引用模塊。
所以目錄結構應該是:
project/
__init__.py
test.py
common.py
system.py
ptest1/
__init__.py
hello.py
每次引用文件時,都應該提供完整路徑。
# import everything from hello.py
from project.ptest1.hello import *
# import everything from common.py
from project.common import *
# import everything from system.py
from project.system import *
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.