在Python中存储应用程序设置

在Python中存储应用程序设置,python,parameters,settings,Python,Parameters,Settings,我正在寻找一种用Python存储设置的智能方法。我想做的就是设置一些参数并在代码中使用它 我发现了这个和这个,但我不认为这能帮我解决问题。我想存储一些参数,例如年龄、体重和姓名等,并轻松访问它们 有什么最佳实践吗?我认为一种方法是将参数存储在类中 像这样: class Settings: # default settings name = 'John' surname = 'Doe' age = 45 gender = 'Male' from sett

我正在寻找一种用Python存储设置的智能方法。我想做的就是设置一些参数并在代码中使用它

我发现了这个和这个,但我不认为这能帮我解决问题。我想存储一些参数,例如年龄、体重和姓名等,并轻松访问它们


有什么最佳实践吗?

我认为一种方法是将参数存储在类中

像这样:

class Settings:

    # default settings
    name = 'John'
    surname = 'Doe'
    age = 45
    gender = 'Male'
from settings import *
settings = Settings()
username = settings.name
另一种方法是将这些变量存储在配置文件中,然后从中读取。但我发现前者更容易,因为您可以更容易地访问代码

像这样:

class Settings:

    # default settings
    name = 'John'
    surname = 'Doe'
    age = 45
    gender = 'Male'
from settings import *
settings = Settings()
username = settings.name

如果您喜欢windows.ini文件格式,Python会附带ConfigParser(python3 ConfigParser)来解释它们。文档使其看起来比实际情况更复杂-请跳到结尾,看一个简单的示例

您还可以使用(滥用?
导入
)加载settings.py文件

将参数放入类中是很好的。您可以添加load和save方法,从配置文件(如果存在)读取/覆盖默认值,并使用当前值创建/更新配置文件。

Pickle, 您可以将任何python数据结构存储在文件中,并在以后加载它

import pickle
data = dict(user='Homer', age=45, brain=None)

#save data to file
with open('setting.cfg', 'wb') as f: 
            pickle.dump(data, f)

#load data from file
with open('setting.cfg', 'rb') as f: 
            data = pickle.load(f)

我相信您使用示例的第二行应该是
username=Settings.name
。另外,没有理由使用
\uuuu init\uuuu()
方法,因为它从未被使用过(即使它做了些什么)。我从一个工作示例中获取了这一点,但错过了这一行。谢谢你的指点!