如何编写If-else条件在两个函数之间进行选择

2024-10-04 09:31:17 发布

您现在位置:Python中文网/ 问答频道 /正文

场景: 我有个档案项目.py其任务是导航到另一个文件夹以获取存储在.yml文件中的环境变量。这里有两种情况,一种工作是导航到一个目录,另一种工作是导航到一个egg文件中的目录,我使用了zipfile模块。如何将这两个案例都包含在项目.py并编写一个if-else条件,根据目录类型在这两个函数之间进行选择。下面是代码。我对编程相当陌生,非常感谢您的帮助。你知道吗

你知道吗项目.py你知道吗

类别项目(dict):

def __init__(self, envmt, app_path):

        self.config_dict = {}
        self.envmt = envmt
        with zipfile.Zipfile("C:/Users/project/poc/dist/project-1.0.0-py3.6", 'r') as myzip:
            config = load(myzip.open("base.yml_path"))
        for key, value in config.items():
             configvals = value
        for key in configvals:
             self.config_dict[key]= configvals[key]

        self.base = config
        with zipfile.Zipfile("C:/Users/project/poc/dist/project-1.0.0-py3.6", 'r') as myzip:
            config = load(myzip.open("env.yml_path"))

        for key, value in config.items():
             configvals = value
        for key in configvals:
             self.config_dict[key]= configvals[key]
        self.env = config

def __init__(self, envmt, app_path):

        self.config_dict = {}
        self.envmt = envmt
        with open(os.path.join(app_path, 'config', 'base.yml'), 'r') as cfile:
            config = load(cfile)
        for key, value in config.items():
             configvals = value
        for key in configvals:
             self.config_dict[key]= configvals[key]

        self.base = config
        with open(os.path.join(app_path, 'config', envmt+'.yml'), 'r') as cfile:
            config = load(cfile)

        for key, value in config.items():
             configvals = value
        for key in configvals:
             self.config_dict[key]= configvals[key]
        self.env = config

如何编写一个条件来在上述两个函数之间进行选择。你知道吗


Tags: path项目keyinselfprojectconfigapp
1条回答
网友
1楼 · 发布于 2024-10-04 09:31:17

如果两个__init__属于同一个class,则只使用最后一个,请考虑编写如下类:

class AClass:
    def __init__(self, envmt, app_path):
        if condicion == True:
            self._init_a(envmt, app_path)
        else:
            self._init_b(envmt, app_path)

    def _init_a(self, envmt, app_path):
        # run code here

    def _init_b(self, envmt, app_path):
        # run code here

相关问题 更多 >