Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonクラスのパブリック変数とプライベート変数は何ですか?


パブリック変数

Pythonは、Pythonプログラムで変数にアクセスしたりメンバーメソッドを呼び出したりすることを制限しません。

すべてのPython変数とメソッドはデフォルトでPythonで公開されています。したがって、変数またはメソッドをパブリックにしたい場合は、何もしません。以下の例を見てみましょう-

class Mug:
    def __init__(self):
        self.color = None
        self.content = None

    def fill(self, beverage):
        self.content = beverage

    def empty(self):
        self.content = None

brownMug = Mug()
brownMug.color = "brown"
print brownMug.empty()
print brownMug.fill('tea')
print brownMug.color
print brownMug.content

コード内のすべての変数とメソッドはデフォルトで公開されています。

データメンバーをプライベートと宣言する場合、クラス外から誰もデータメンバーにアクセスできないようにする必要があります。ここで、Pythonは名前マングリングと呼ばれる手法をサポートしています。この機能は、接頭辞が2つ以上、接尾辞が1つ以下のすべてのメンバー名を_に変換します。メンバーを非公開にするために、以下の例を見てみましょう-

class Cup:
    def __init__(self, color):
         self.__content = None  # private variable
    def fill(self, beverage):
        self.__content = beverage
    def empty(self):
        self.__content = None

私たちのカップは、fill()メソッドとempty()メソッドを使用することによってのみ充填および注入できるようになりました。外部から__contentにアクセスしようとすると、エラーが発生することに注意してください。しかし、あなたはまだこのようなものに出くわすことができます-

redCup = Cup("red")
redCup._Cup__content = "tea"

  1. Pythonでの継承

    この記事では、Python3.xでの継承と拡張クラスについて学習します。またはそれ以前。 継承は実際の関係をうまく表し、再利用性を提供し、推移性をサポートします。開発時間が短縮され、メンテナンスが容易になり、拡張も容易になります。 継承は大きく5つのタイプに分類されます- シングル 複数 階層的 マルチレベル ハイブリッド 上の図に示されているように、継承とは、実際に親クラスのオブジェクトを作成せずに、他のクラスの機能にアクセスしようとするプロセスです。 ここでは、単一の階層型継承の実装について学習します。 単一継承 例 # parent class class Studen

  2. Python2.7.xとPython3.xの主な違いは何ですか?

    Python 3.0は2008年12月にリリースされました。これは、以前のバージョンの特定の欠陥を修正するために設計されました。 Python 3の基本原則は、「古いやり方を削除することで機能の重複を減らす」ことでした。 Python3.0は下位互換性を提供しません。つまり、バージョン2.x構文を使用して記述されたPythonプログラムは、python3.xインタープリターでは実行されません。 Ver 2.7は、Python2.xシリーズの最後のメジャーリリースです。 これら2つのバージョンの使用法にはかなりの違いがありますが、最も明白なものを以下に示します- 印刷 はPython2.7の