-4
class Bank(): # let's create a bank, building ATMs
    crisis = False
    def create_atm(self):
        while not self.crisis:
            yield "$100"
  x=bank():

私はPython(および一般的なコーディング)が初めてで、頭を包み込もうとしていselfます. これが学ぶのに最適な例かどうかはselfわかりませんが、行がわかりませんwhile not self.crisis: yield "$100"。したがって、crisis = False関数はcreate_atm基本的にwhile crisis = true yield $100? 何をしているのかまだわかりませんself

また、なぜ後にコロンがあるのx=bank()ですか?

4

4 に答える 4

0

I'm new to python (and coding in general) and I'm trying to wrap my head around self. I don't know if this is the best example to try to learn self,

This SO article は、コメントに記載されているように「自己」をよく説明しています。それを読んでください。

Also, why is there a colon after x=bank()?

それは正しくありません。コロンのせいだけではありません。また、(大文字に注意してください)を使用する必要x = Bank()があり、この宣言は、メイン ルーチンのように、コード内の他の場所である可能性が最も高いクラスの外にある必要があります。

So, since crisis = False so does the create_atm function basically say while crisis = true yield $100?

いいえ、それは危機が False の場合にのみ得られるため、not. 簡単に理解すると、もしが false でなければ、あれやこれや、ということになりますif crisiscrisisさて、あなたはそこにネゲートを持っているので、それがfalseの場合はこれを行います.

于 2013-09-06T05:39:27.053 に答える
0
x = bank():

不適切なコードであり、コードを実行すると明らかにエラーが発生します

''self'' の使用法は次のとおりです。

python 'self' 変数を初心者に説明する

コードを取得したのとまったく同じ質問です。

于 2013-09-06T05:24:53.660 に答える
0

最後のコロンに関する限り、なぜx = bank():そのように書かれているのかわかりません。示唆されているように、それはおそらく間違いです。

この例では、ifx = Bank()が実行され、クラスxのインスタンスまたはオブジェクトです。このオブジェクトには、以下に定義されている関数のコピーがあり、すべてのオブジェクトが持つ必要があります。BankBankBank

def create_atm(self):
    while not self.crisis:
        yield "$100"

関数の前の行はcrisisbeing として定義されていFalseます。これは、デフォルトで値を持つcrisis内部変数またはプロパティFalseです。これは、次の質問に答えるために重要です。

それで、crisis = False関数はcreate_atm基本的に while crisis = trueyield $100 と言っているのですか?

whileステートメントは、テストされた条件が の場合にのみ実行されますTrue。この場合、条件はnot self.crisisであり、 にあるものの反対ですself.crisiscrisisそのため、 this が it で見る thatBankの値を見て、それselfを否定する必要があります。

もしそうなら、ループは実行されませんself.crisisTruenot self.crisisFalsewhile

selfは、関数に渡されるパラメーターであり、独自の変数にアクセスできると言えます。そうBankすれば、crisis一方が入っていても、もう一方が入っていない可能性があります。

于 2013-09-06T05:50:10.000 に答える