gpt4 book ai didi

python - 开发Python包时如何缩短导入语句?

转载 作者:太空宇宙 更新时间:2023-11-03 21:44:46 24 4
gpt4 key购买 nike

我正在设计一个Python包。请参阅下面的项目结构-

android_py
├── README.md
├── setup.py
└── android_py
├── __init__.py
├── options.py
└── android.py

下面是setup.py的内容-

from setuptools import setup, find_packages

setup(name='android_py',
version='0.1',
description='The description goes here',
url='http://github.com/example_user/android_py',
author='Bob',
author_email='abc@example.com',
license='MIT',
packages=find_packages(),
zip_safe=False,
)

使用python setup.py可以成功安装上述包。但是,为了使用这个包,我需要编写很长的 import 语句,如下所示 -

from android_py.android import Android
from android_py.options import Power

my_robot = Android()
my_robot.set_power(Power.On)

如您所见,存在以下两个问题 -

  1. 第一次导入,即 from android_py.android import Android 太长,而且不方便用户记住,因为它很难记住。我认为较短的内容(例如 import android)要好得多。
  2. 第二次导入,即from android_py.options import Power很麻烦。它应该在第一次导入时自动导入。

您能否建议我如何重新配置​​此软件包以克服上述问题?请注意,我使用的是 Python 2.7(如果重要的话)!

最佳答案

除了我的评论之外,我将尝试举一个简短的例子。假设你有权力.py:

class Power:
On = True

并在同一个包中 android.py:

from . import power

class Android:
Power = power.Power

在android_py包中__init__.py:

from .android import Android

现在,从外部进入你的 app.py、main.py 或任何你能做的:

from android_py import Android
my_robot = Android()
my_robot.set_power(my_robot.Power.On)

顺便说一句:我对包名 android_py 不太满意。也命名为android,在android包里有一个android.py是没有问题的。或者用路径名解释:有android/android.py是没有问题的。通过在上面示例中的 android.py__init__.py 中使用相对导入 .,它应该可以工作。

关于python - 开发Python包时如何缩短导入语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52579358/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com