gpt4 book ai didi

python - 如何导入已从父脚本导入的库?

转载 作者:行者123 更新时间:2023-12-01 00:36:34 28 4
gpt4 key购买 nike

我不知道如何清楚、准确地解释这个问题......

但是我正在尝试运行一个主脚本(main.py),它导入几个库(如“os”模块),并且该脚本应该导入另一个子脚本(child.py)。

问题是“child.py”必须使用这个“os”模块,但它无法从“main.py”获取。

我尝试运行“main.py”并得到:NameError:名称“os”未定义。

我的目录结构:

main/
|__ main.py
|__ sub/
|__ child.py
|__ __init__.py

[main.py]内容:

import os
from sub.child import function

function()

[child.py]内容:

def function:
os.system('clear')
<more code that require 'os' module>

我在这里缺少什么?我试图从“main.py”导入所有库,以避免在运行另一个脚本时等待太多(不希望它们之后导入大量库,我想从主文件导入所有内容)。

最佳答案

I'm trying to import all libraries from the 'main.py' to avoid waiting to much when running another scripts (don't want them importing a lot of libraries after, I want to import everything from the main file).

这不是它的工作原理。您应该在实际使用该模块的模块中导入该模块,并且仅在那里导入该模块。

所以你需要在子模块中导入os模块才能使用它:

# child.py
import os

def function():
os.system('clear')
# more code that uses `os`

如果在 main.py 中实际上没有使用 os,则不应将其导入其中:

# main.py
from sub.child import function

function()

正如@user10987432所指出的;如果您担心 import 语句会减慢代码速度,那么您就混淆了优先级。这不仅是一种过早优化的形式,而且最重要的是,很难想象 import 语句曾经是瓶颈 - 也就是说 - 这可能是不可能的,而且是没问题。

关于python - 如何导入已从父脚本导入的库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57712920/

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