How to import and create my class from my module?
我正在创建一个模块,它具有以下类:
1 2 3 4 5 6 7 8 9 10 11 12 | class LogLevel(): Info = 1 Warn = 2 Error = 3 class FalconPeer(): def __init__(self, port=37896, log_level=LogLevel.Info): self._port = port self._log_level = log_level |
在文件夹结构中:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | +---PyFalconUDP | CHANGES.txt | LICENSE.txt | MANIFEST.in | README.txt | setup.py | +---falconudp | enums.py | falconpeer.py | tree.txt | __init__.py | +---test | test_location.py | test_utils.py | __init__.py |
但是在pyfalconudp文件夹中运行python时,我无法导入和使用类——如何创建
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (In tel)] on win32 Type"help","copyright","credits" or"license" for more information. >>> import falcondup.FalconPeer Traceback (most recent call last): File"", line 1, in ImportError: No module named 'falcondup' >>> import falconudp.FalconPeer Traceback (most recent call last): File"", line 1, in ImportError: No module named 'falconudp.FalconPeer' >>> import falconudp >>> a = FalconUDP() Traceback (most recent call last): File"", line 1, in NameError: name 'FalconUDP' is not defined >>> a = falconudp.FalconPeer() Traceback (most recent call last): File"", line 1, in AttributeError: 'module' object has no attribute 'FalconPeer' >>> from falconudp import FalconPeer Traceback (most recent call last): File"", line 1, in ImportError: cannot import name FalconPeer >>> |
分解您的详细信息:
1 2 3 | Pkg : falcondup Module: falconpeer Class : FalconPeer |
使用模块名称导入:
1 | import falcondup.falconpeer |
使用完整路径创建一个对象,直到类名:
1 | obj = falcondup.falconpeer.FalconPeer() |
一旦创建了obj,就可以调用类中的所有方法。
类内调用方法:
1 | obj.method_name() |
如果要访问类属性,请使用类名。
1 2 3 | falcondup.falconpeer.LogLevel.Info falcondup.falconpeer.LogLevel.Warn falcondup.falconpeer.LogLevel.Error |
如果要在内部使用:class_name.class_var_name
另一个场景:
如果loglevel类在不同的文件中,这意味着不同的模块,那么您需要导入该模块,而不能访问它。
要从falconudp模块导入某些内容,它应该位于EDOCX1的全局命名空间中(0)。
因此类声明应该: