簡體   English   中英

如何修復名稱未在 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM