将Python字符串文字作为参数传递,包含和不包含方括号

时间:2016-04-01 09:06:19

标签: python

我有以下代码段(来自正在使用的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。

1 个答案:

答案 0 :(得分:2)

方括号称为list display并生成list个对象。显然,API接受列表或字符串。 特定的 API同时接受字符串和列表并不意味着语法没有意义。

create_scopes() documentation对这个主题有点模糊,只是将参数记录为scopes(复数),并声明它将为给定范围创建一个凭据对象。GoogleCredentials类充当各种环境的调度程序(从文件或App Engine存储中读取凭据),但从我看到的scopes值最终传递给{{3如果参数不是字符串,则使用' '.join();因此,对于多个范围,您可以传入包含范围字符串的元组,列表,生成器,或者作为一个以空格分隔的字符串。