python類的重寫 私有變數

2021-08-10 12:11:52 字數 1715 閱讀 9152

類的重寫

在python中 有時需要進行重寫,重寫是繼承機制中的乙個重要部分, 可以重寫一般方法也可以重寫構造方法,構造方法是用來初始化新建立物件的狀態。

class parent(object):

name = 'parent'

age = 100

def __init__(self):

print('my name is parent')

def get_name(self):

return self.name

def get_age(self):

return self.age

class child(parent):

def __init__(self):

super(child, self).__init__()

print('my name is clild')

def hello(self):

print('hello child')

a = child()

a.hello()

print(a.get_name())

print(a.get_age())

如果子類沒有定義__init__()方法,子類初始化的時候就會呼叫父類的方法,但是當子類定義了__init__()方法,子類就不會呼叫父類的__init__()方法。

如果子類想實現父類構造器中的方法,然後自己在寫自己特殊的方法,使用super()

類的私有變數和方法

在python中可以通過在屬性變數名前加上雙下劃線定義屬性為私有屬性

特殊變數命名

_xx

以單下劃線開頭的表示的是

protected

型別的變數。即保護型別只能允許其本身與子類進行訪問。

__xx 雙下劃線的表示的是私有型別的變數。只能允許這個類本身進行訪問了,連子類也不可以用於命名乙個類屬性(類變數),呼叫時名字被改變(在類foobar內部,__boo變成_foobar__boo,如self._foobar__boo)

__xx__定義的是特列方法。使用者控制的命名空間內的變數或是屬性,如init , __import__或是file 。只有當文件有說明時使用,不要自己定義這類變數。 (就是說這些是python內部定義的變數名)

python內建類屬性

__dict__ : 類的屬性(包含乙個字典,由類的資料屬性組成)

__doc__ :類的文件字串

__module__: 類定義所在的模組(類的全名是'__main__.classname',如果類位於乙個匯入模組mymod中,那麼classname.__module__ 等於 mymod)

__bases__ : 類的所有父類構成元素(包含了乙個由所有父類組成的元組)

class justcounter:

__secretcount = 0 # 私有變數

publiccount = 0 # 公開變數

def count(self):

self.__secretcount += 1

self.publiccount += 1

print self.__secretcount

counter = justcounter()

counter.count()

counter.count()

print counter.publiccount

Python類的重寫和私有變數

class parent object 定義父類的時候,一定要寫繼承object類,否則會報錯 name parent f def init self address,age self.address address self.age age print my name is format self...

python類的私有變數和私有方法

usr bin env python coding utf 8 time 2017 11 08 8 46 author lijunjiang file class3.py 類的私有變數和私有方法 在python中可以通過在屬性變數名前加上雙下劃線定義屬性為私有屬性 特殊變數命名 1 xx 以單下劃線...

類的私有變數

1.在python 中可以通過在屬性變數名前加上雙下劃線定義屬性為私有屬性 特殊變數命名 案例 class a object zhe shi shuo ming name ling man def hello self print self.name print self.def get self ...