Beachten Sie das Missverständnis, wenn Sie versuchen, mehrere Klassen (Apple, Orange, Grape) mit "Obst importieren" in einem selbst erstellten Modul (obst.py) zu laden. Referenz: http://www.python-izm.com/contents/basis/import.shtml
Angenommen, Sie haben die folgenden Module.
fruits.py
class Apple():
def hoge():
pass
class Orange():
def hoge():
pass
class Grape():
def hoge():
pass
Als ich die Klasse in diesem Modul mit "Früchte importieren" las und versuchte, eine Instanz zu erstellen, trat der folgende Fehler auf.
>>> import fruits
>>> apple = Apple()
>>> type(apple)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'Apple' is not defined
Behandeln Sie es richtig als "Modulname.Klasse". Die Ursache für dieses Missverständnis war, dass das "Importmodul" versuchte, es wie "Typ (Klassenname)" zu behandeln.
>>> import fruits
>>> type(fruits.Apple)
<class 'type'>
Wenn Sie es wie "Typ (Klassenname)" behandeln möchten, gehen Sie wie folgt vor.
>>> from fruit import Apple
>>> type(Apple)
<Class 'type'>
Wir haben einen Kommentar von Shiracamus erhalten.
Wenn Sie es wie Typ (Klasse) machen möchten, können Sie from module import *
schreiben.
>>> from fruit import *
>>> type(Apple)
<class 'type'>
Recommended Posts