gpt4 book ai didi

初始化实例变量的Pythonic方式

转载 作者:太空宇宙 更新时间:2023-11-03 21:44:32 25 4
gpt4 key购买 nike

这两个中哪个更Pythonic?

class A:
def __init__(self):
self.v1 = None
self.v2 = None
self.v3 = None
self.foo()

def foo(self):
self.v1, self.v2, self.v3 = ...

或者:

class A:
def __init__(self):
self.v1, self.v2, self.v3 = self.foo()

def foo(self):
return ...

我自己的推断是,在第一个示例中,乍一看并不清楚 self.foo() 是什么。确实如此,直到有人读完该方法本身。

但是第二个的问题是可能会出现这样的警告:foo方法可以是静态的。

最佳答案

初始化类的一个好方法是:

class A:
def __init__(self, arg1=None, arg2=None):
self.arg1=arg1
self.arg2=arg2

由于您想使用文件初始化变量,因此您可能需要使用 ConfigParser。 ConfigParser 允许您轻松地从文件中读取并访问键值对。

from configparser import ConfigParser
config = ConfigParser()
config.read('example.conf')

class A:
def __init__(self, config):
self.arg1=config['arg1']
self.arg2=config['arg2']

上面的示例类接受一个配置对象,您可以在其中获取从文件存储的值。

附注我没有测试上面的代码。看看the configparser docs了解更多信息。

关于初始化实例变量的Pythonic方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52590809/

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