4

Learn Python the Hard Way から:

Python は、あなたが mystuff に言及したことを確認し、その変数を検索します。= で作成したかどうかを確認するには、逆方向に調べて、それが関数の引数であるかどうか、またはグローバル変数であるかどうかを確認する必要がある場合があります。いずれにせよ、最初に謎を見つけなければなりません。

mystuff を見つけると、. (ピリオド) 演算子を使用して、mystuff の一部である変数を調べ始めます。mystuff はリストなので、mystuff にはたくさんの関数があることがわかります。

次に、追加を押して、「追加」という名前を、mystuff が所有していると言うすべての名前と比較します。追加がそこにある場合 (ある場合)、それを取得して使用します。次に、Python は ( (括弧) を見て、「ああ、これは関数であるべきだ」と認識します。この時点で、通常と同じように関数を呼び出します (実行することもできます) が、代わりに追加の引数を指定して関数を呼び出します。

その余分な議論は... 謎です!私は知っています、変ですよね?しかし、それが Python の仕組みなので、覚えておいて、それで問題ないと仮定するのが最善です。次に何が起こるかというと、このすべての最後に次のような関数呼び出しがあります。

彼はどこから「mystuff」を手に入れますか? そして、その期間演算子がどのように機能するかについてはまだわかりません(申し訳ありませんが、これは初めてですのでご容赦ください)、後でこれを取得します:

ten_things = "Apples Oranges Crows Telephone Light Sugar"

print "Wait there's not 10 things in that list, let's fix that."

stuff = ten_things.split(' ')

その文字列が最後の行の後にリストになる方法がわかりません.splitは自動的にそれを1つに変えますか? 彼が行っている期間の「分割」または「追加」の名前は何ですか? プログラミングで私を悩ませている主な原因の 1 つは、多くのものが実際に何と呼ばれているかを知らないことです。関数や変数などは知っていますが、.split のようなものは混乱するだけです。

ヘルプ?

4

2 に答える 2

4

stuff = ten_things.split(' ')の値を変更しませんten_things。代わりに、という名前の新しい変数をstuff作成し、によって作成されたリストをそれに保存しten_things.split(' ')ます。ここでメソッドに引数として渡されるスペースsplitは重要です。つまり、Python は文字列を取得ten_thingsし、 s 引数を区切り文字として使用して分割する必要があります。split

例:

"This is a string".split(' ') == ["This", "is", "a", "string"]

また

"This|is|a|string".split('|') == ["This", "is", "a", "string"]

于 2013-03-04T01:15:03.483 に答える
2

「彼はどこから「mystuff」を取得するのですか?」に関してmystuffは、ある種のオブジェクトであり、オブジェクトの属性値(またはそのクラスの属性値)の中にメソッドまたは関数があります。ドット(ピリオド)は修飾子演算子です。たとえば、関連する関数をオブジェクトに関連付けられた関数としてmystuff.append修飾または識別します。オブジェクトメソッドは通常、最初の引数として暗黙の引数(多くの場合と呼ばれます)を持ち、その引数はメソッドが属するオブジェクトと等しくなります。この場合、それはです。appendmystuffselfmystuff

前の回答で述べたようにsplit、文字列を分割してリストを返します。詳細については、以下 に関するチュートリアルポイントsplitも参照してください。

メソッドsplit()は、文字列内のすべての単語のリストを返します。区切り文字としてstrを使用し(指定しない場合はすべての空白で分割します)、オプションで分割数をnumに制限します。...以下はsplit()メソッドの構文ですstr.split(str="", num=string.count(str))

于 2013-03-04T01:55:09.860 に答える