2016-04-01 18 views
0

とし、角括弧なしで囲まれた引数としてリテラルPython文字列を、渡す:は、私が(働くGoogleのサンプル<a href="https://cloud.google.com/vision/docs/label-tutorial" rel="nofollow">here</a>から)次のコードセグメント持つ

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

「角括弧は何ですか?」おそらくあなたは[公式のPythonチュートリアル](https://docs.python.org/3.4/tutorial/index.html)をチェックしてください。 – TigerhawkT3

+1

リストに複数の引数を渡すことができます –

+1

@PadraicCunninghamあなたの洞察をいただきありがとうございます。 – Sabuncu

答えて

2

角括弧はlist displayと呼ばれ、listオブジェクトを生成します。明らかに、APIはリストまたは文字列を受け入れます。 の特定の APIが文字列とリストの両方を受け入れても、そうでない場合は構文が意味をなさないことを意味するわけではありません。

create_scopes() documentationだけscopes(複数)のような引数を記録し、資格が与えられたスコープのオブジェクトを作成することを述べ、被写体に少し曖昧です。GoogleCredentialsクラスは、さまざまな環境(ファイルまたはApp Engineストレージから資格情報を読み込む)のディスパッチャとして機能しますが、scopesの値は最終的にoauth2client.util.scopes_to_string()に渡されます。引数が0以外の場合は' '.join()が使用されます。すでに文字列です。複数のスコープの場合は、タプル、リスト、スコープ文字列を含むジェネレータ、またはスペースで区切られた1つの文字列として渡すことができます。

+0

*「特定のAPIが文字列とリストの両方を受け入れても、その構文が意味をなさないことを意味するわけではありません」*優れています。ありがとうございます。 – Sabuncu

関連する問題

 関連する問題