Notez le malentendu lorsque vous essayez de charger plusieurs classes (Apple, Orange, Grape) dans un module auto-créé (fruits.py) avec ʻimport fruits`. Référence: http://www.python-izm.com/contents/basis/import.shtml
Supposons que vous ayez les modules suivants.
fruits.py
class Apple():
def hoge():
pass
class Orange():
def hoge():
pass
class Grape():
def hoge():
pass
Quand j'ai lu la classe dans ce module avec ʻimport fruits` et essayé de créer une instance, l'erreur suivante s'est produite.
>>> import fruits
>>> apple = Apple()
>>> type(apple)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'Apple' is not defined
Correctement, traitez-le comme nom du module.classe
. La cause de ce malentendu était que j'ai essayé de le traiter comme «type (nom de classe)» avec le «module d'importation».
>>> import fruits
>>> type(fruits.Apple)
<class 'type'>
Si vous voulez le traiter comme type (nom de classe)
, procédez comme suit.
>>> from fruit import Apple
>>> type(Apple)
<Class 'type'>
Nous avons reçu un commentaire de shiracamus.
Si vous voulez faire comme type (class), vous pouvez écrire from module import *
.
>>> from fruit import *
>>> type(Apple)
<class 'type'>
Recommended Posts