我有一个使用第三方API的django应用程序,需要接收多个参数,例如client_id
,user_id
等。我目前将这些值标记在我文件的顶部作为变量,但我想将它们存储在一个对象中。
我目前的设置看起来像这样:
user_id = 'ID HERE'
client_id = 'ID HERE'
api_key = 'ID HERE'
class Social(LayoutView, TemplateView):
def grab_data(self):
authenticate_user = AuthenticateService(client_id, user_id)
我希望将默认值设置为对象
SERVICE_CONFIG = {
'user_id': 'ID HERE',
'client_id': 'ID HERE'
}
这样我就可以在我的课程中访问它们了:
authenticate_user = AuthenticateService(SERVICE_CONFIG.client_id, SERVICE_CONFIG.user_id)
我已经尝试了SERVICE_CONFIG.client_id
和SERVICE_CONFIG['client_id']
,并将这些值设置为mixin,但我无法通过其他方式弄清楚如何访问它们。
答案 0 :(得分:0)
Python不是Javascript。那是一本字典,而不是一个对象。您可以使用项目语法而不是属性语法来访问词典:
AuthenticateService(SERVICE_CONFIG['client_id'], SERVICE_CONFIG['user_id'])
答案 1 :(得分:0)
您可以使用类,实例或函数对象将数据存储为属性:
class ServiceConfig:
user_id = 1
client_id = 2
ServiceConfig.user_id # => 1
service_config = ServiceConfig()
service_config.user_id # => 1
service_config = lambda:0
service_config.user_id = 1
service_config.client_id = 2
service_config.user_id # => 1
通常使用dict是存储数据的最简单方法,但在某些情况下,可以优先考虑更高的属性访问可读性,然后您可以使用上面的示例。使用lambda是最简单的方法,但对于阅读代码的人来说更加困惑,因此前两种方法更可取。