class GoogleAuth(ApiAttributeMixin, object):
def __init__(self, settings_file='settings.yaml',http_timeout=None):
在这里我想将settings_file的默认值更改为我自己的路径
答案 0 :(得分:2)
您可以在定义中分配新路径。
class GoogleAuth(ApiAttributeMixin, object):
def __init__(self, settings_file='settings.yaml',http_timeout=None):
settings_file = '/var/myfile.yaml'
答案 1 :(得分:1)
因此,您的一个类是从另一个类继承的。而且,当我们谈论__init__
中的默认值时-表示该值,将在未提供特定值时使用。例如:
google_auth = GoogleAuth() # default value for `settings_file` will be used
google_auth = GoogleAuth(http_timeout=23) # default value for `settings_file` will be used
google_auth = GoogleAuth(settings_file='specific_one.yaml') # specified one will be used instead of default
...
很可能您的基类ApiAttributeMixin
具有自己的settings_file
参数默认值。因此,您想用子类GoogleAuth
的另一个默认值覆盖该默认值。
假设您要在google_settings.yaml
类中将settings_file
作为GoogleAuth
参数的默认值。该代码将如下所示:
class ApiAttributeMixin(object):
def __init__(self, settings_file='settings.yaml', http_timeout=None):
pass
class GoogleAuth(ApiAttributeMixin, object):
def __init__(self, settings_file='google_settings.yaml', http_timeout=None):
super(GoogleAuth, self).__init__(settings_file, http_timeout)