pythonの継承
プライベート変数
オブジェクト内部(サブクラスを含む)でアクセスできない「プライベート」インスタンス変数を除いてPythonには存在しません.しかし、ほとんどのPythonコードは、下線(例えば
このクラスの非プライベートメソッドでのみアクセスできます.
クラスを初期化するときは、サブクラスに進みます_init__()メソッド、親を呼び出す_init__()構造方法,再
サブクラスを実行_init__()コード、初期化完了.
同じ名前の関数がある場合、サブクラスオブジェクトはサブクラス関数を呼び出します.
サブクラスに呼び出された関数がない場合、サブクラスオブジェクトは親関数を呼び出します.
オブジェクト内部(サブクラスを含む)でアクセスできない「プライベート」インスタンス変数を除いてPythonには存在しません.しかし、ほとんどのPythonコードは、下線(例えば
_spam
)を接頭辞とする名前は、関数、方法、データメンバーにかかわらず、APIの非公開部分と見なすべきであるという約束に従っている.予告なく変更される場合、実装の詳細と見なす必要があります.このクラスの非プライベートメソッドでのみアクセスできます.
#-*- coding:UTF-8 -*-
class parent:
count=100;
__privateName="zhansan";
def __init__(self):
print ("fu init");
self.age=10;
self.num="12234";
self.name="fu";
def setName(self,name):
print ("fulei setName");
self.name=name;
def getName(self):
print ("fulei getName");
return self.name;
def getPrivateName(self):
return self.__privateName;
class child(parent):
def __init__(self):
parent.__init__(self);
print ("zilei init");
def setName(self,name):
parent.setName(self,name);
print ("zilei setName");
def getName(self):
print ("zilei getName");
return parent.getName(self);
def getPrivateName(self):
return parent.getPrivateName(self);
a=child();
print (a.getName());
print a.count;
print a.getPrivateName();
クラスを初期化するときは、サブクラスに進みます_init__()メソッド、親を呼び出す_init__()構造方法,再
サブクラスを実行_init__()コード、初期化完了.
同じ名前の関数がある場合、サブクラスオブジェクトはサブクラス関数を呼び出します.
サブクラスに呼び出された関数がない場合、サブクラスオブジェクトは親関数を呼び出します.