具有一个函数或类来存储从python中的yaml文件解析的局部变量

问题描述 投票:0回答:1

我有几行代码将打开一个yaml文件并解析一些值并将它们存储在PYTHON中的局部变量中。

config.yml:

mysql:
  host: localhost
  database: myDatabase
  user: root
  password: root

和到目前为止的代码:

import yaml
with open("config.yml", 'r') as ymlfile:
cfg = yaml.load(ymlfile)

host = cfg["mysql"]["host"]
database = cfg["mysql"]["database"]
user = cfg["mysql"]["user"]
password = cfg["mysql"]["password"]

我想知道是否有办法将其存储在一个整齐的函数中,更重要的是,从另一个函数调用每个变量。

类似:

def parse_config():
    <code> 

def main():
    password = parse_config() 

此外,最好在SEPERATE类中使用它吗?

python python-3.x pyyaml
1个回答
0
投票

您可以将其编写为一个类,这样就不必每次都访问文件。


import yaml

class MyYaml():

    def __init__(self):
        with open("config.yml", 'r') as ymlfile:
            cfg = yaml.load(ymlfile)

            self.host = cfg["mysql"]["host"]
            self.database = cfg["mysql"]["database"]
            self.user = cfg["mysql"]["user"]
            self.password = cfg["mysql"]["password"]

my_yaml = MyYaml()

print(my_yaml.host)
print(my_yaml.database)

© www.soinside.com 2019 - 2024. All rights reserved.