You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中跨脚本调用另一个类中定义的配置变量?

解决方案

你当前的setup方法中定义的数据库连接参数都是函数局部变量,函数执行结束后就会被回收,无法被外部脚本直接调用,需要调整配置存储脚本的逻辑,把配置暴露给外部调用。

第一步:修改 stored_variables.py

class Setup():
    @staticmethod
    def get_db_config():
        a = 'X' # 可根据实际需求修改该值,也可以改成入参动态传入
        if a == 'X':
            # X环境的数据库凭证
            return {
                "database": 'a',
                "user": 'b',
                "password": 'c',
                "host": 'd',
                "port": 4
            }
        elif a == 'Y':
            # Y环境的数据库凭证
            return {
                "database": 'x',
                "user": 'y',
                "password": 'z',
                "host": 'w',
                "port": 7
            }

我们把原来的setup方法调整为静态方法,执行判断后直接返回对应环境的配置字典,外部调用即可拿到所有参数。

第二步:调整 connection.py 并调用配置

import psycopg2
from stored_variables import Setup

class Connection:
    def __init__(self, host, database, port, user, password):   
        self.conn = psycopg2.connect(
            database=database,
            user=user,
            password=password,
            host=host,
            port=port
        )

# 调用示例
if __name__ == "__main__":
    # 从配置脚本获取对应环境的数据库配置
    db_config = Setup.get_db_config()
    # 解包字典传入Connection初始化
    conn = Connection(**db_config)
    # 后续可通过conn.conn操作数据库

这里用到了Python的字典解包语法**,会自动把字典的键值对对应到__init__的同名参数中,无需手动逐个传参。

可选优化

如果需要灵活切换环境,可以把环境标识改成方法入参,修改get_db_config如下:

@staticmethod
def get_db_config(env: str):
    if env == 'X':
        # 返回X环境配置
    elif env == 'Y':
        # 返回Y环境配置

调用时传入指定环境即可,比如Setup.get_db_config("Y")就能拿到Y环境的配置。

内容的提问来源于stack exchange,提问作者Tgr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 14:21:03