9

私はJava出身なので、ここで混乱しています。

class Sample(object):
    x = 100                     # class var?
    def __init__(self, value):
        self.y = value          # instance var?
        z = 300                 # private var? how do we access this outside Sample?

3 つの変数宣言の違いは何ですか?

4

3 に答える 3

3

@vartecはスポットです。ただし、Java から来たので、いくつか明確にする必要があります。

  • Java にはpublicprivateメンバーがあります。メンバーへのアクセスprivateは固く禁じられており、これは言語によって強制されています。
  • Python には public メンバーしかありません。Java のキーワードのようなものを強制する方法はありません。private

    何かが実装の詳細のみであり、他のコードによって依存されるべきではないことを宣言したい場合は、単一のアンダースコア - _variable,を前に付けます_function()。これは、その変数または関数を使用すべきではないという他のプログラマーへのヒントですが、強制されません。

    Python から機能が省略されているように見えるかもしれませんが、Python の文化は「誰もが同意する大人」です。アンダースコアを前に付けて、何かが「プライベート」であることを他のプログラマーに伝えると、通常、彼らはヒントを受け取ります。

于 2012-04-11T13:15:08.827 に答える