gpt4 book ai didi

Python - 导入库的库

转载 作者:行者123 更新时间:2023-12-01 05:33:46 25 4
gpt4 key购买 nike

我正在开发一个包含大约十几个不同文件的项目。在每个文件的顶部,我有几乎相同的行,它们导入相同的库并初始化与我的数据库的连接:

import re
import urllib2
import datetime
from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.sql import *
from sqlalchemy.orm.collections import *
from table_def import Team, Player, Box_Score, Game, Name_Mapper
from datetime import timedelta
from bs4 import BeautifulSoup as bs
from datetime import date, datetime, timedelta
import numpy as np
import argparse

engine = create_engine('sqlite:///ncaaf.db', echo=False)
md = MetaData(bind=engine)
Session = sessionmaker(bind=engine)
s = Session()
teams_table = Table("teams", md, autoload=True)
games_table = Table("games", md, autoload=True)
box_scores_table = Table("box_scores", md, autoload=True)
players_table = Table("players", md, autoload=True)
names_table = Table("names", md, autoload=True)

我可以制作一个模块来导入所有这些模块并初始化此数据库连接吗?这是标准吗?或者由于某种我没有意识到的原因而愚蠢?

最佳答案

当您将某些内容导入到模块中时,它就变得可用,就像它是在模块本身中声明的一样。所以,你可以像这样做你想做的事:

common_imports.py中:

from datetime import date, datetime, timedelta
import numpy as np
import argparse
...

main_module.py中:

from common_import import *

a = np.array([]) # works fine

但是,自 Explicit is better than implicit 起不建议这样做。例如。如果你这样做,其他人(甚至 future 的你)将无法理解所有这些导入的模块来自哪里。相反,尝试更好地组织您的导入,或者将您的模块分解为多个模块。例如,在您的导入列表中,我看到 argparse、SQL 内容和 numpy,但我无法对可能需要所有这些不相关库的单个模块进行成像。

关于Python - 导入库的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19601322/

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