python - 如何从我的模块导入和创建我的类?

标签 python python-3.3 python-module

我正在创建一个模块,它有以下类:

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

在文件夹结构中:

+---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 我无法导入和使用我的类 - 如何创建 FalconPeer

    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
    >>>

最佳答案

分割您的详细信息:

Pkg : falcondup
Module: falconpeer
Class : FalconPeer

使用模块名称导入:

import falcondup.falconpeer

使用完整路径创建一个对象,直到类名:

obj = falcondup.falconpeer.FalconPeer()

一旦创建了 obj,就可以调用类中的所有方法。

在类内部调用方法:

obj.method_name()

如果您想访问类属性,请使用类名称。

falcondup.falconpeer.LogLevel.Info
falcondup.falconpeer.LogLevel.Warn
falcondup.falconpeer.LogLevel.Error

如果你想在内部使用:class_name.class_var_name

另一个场景:

如果您的 LogLevel 类位于不同的文件中,这意味着不同的模块,那么您需要导入该模块才能访问它。

关于python - 如何从我的模块导入和创建我的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21619818/

相关文章:

python -\ufeff 标识符中的无效字符

python - 如何构建 pygobject 以自定义安装 Python?

python - 当我的 multiprocessing.pool.apply_async 次数超过我的处理器时会发生什么

python - 合成子模块 : from A import B (ok) vs. 导入 A.B(错误)?

python - 如何根据 Pandas 数据框中的前几行添加带有值的额外列?

python - 在 every/n Python 3 中分解多个列表中的列表条目

python - 从字母组合生成字符串的最佳选择是 python 还是 bash?

python - 如何仅读取某些短语之间的文件

python - 从(或接近)具有相同名称的脚本导入库会引发 "AttributeError: module has no attribute"或 ImportError 或 NameError

python - 使用imp.load_source动态加载python模块和包