我有以下代码段(来自正在使用的Google样本here):
credentials = GoogleCredentials.get_application_default().create_scoped(
['https://www.googleapis.com/auth/cloud-platform'])
我删除了字符串文字周围的方括号,并按如下方式尝试:
credentials = GoogleCredentials.get_application_default().create_scoped(
'https://www.googleapis.com/auth/cloud-platform')
没有区别,应用程序仍然可以正常工作。我的问题:方括号是什么,即使它们上面似乎是多余的,它们应该是对其他东西的保险吗?
我在Windows 7 x86上运行Python 3.5.1。
答案 0 :(得分:2)
方括号称为list display并生成list
个对象。显然,API接受列表或字符串。 特定的 API同时接受字符串和列表并不意味着语法没有意义。
create_scopes()
documentation对这个主题有点模糊,只是将参数记录为scopes
(复数),并声明它将为给定范围创建一个凭据对象。。 GoogleCredentials
类充当各种环境的调度程序(从文件或App Engine存储中读取凭据),但从我看到的scopes
值最终传递给{{3如果参数不是字符串,则使用' '.join()
;因此,对于多个范围,您可以传入包含范围字符串的元组,列表,生成器,或者作为一个以空格分隔的字符串。