python 類的基本知識

2021-08-16 02:01:58 字數 2542 閱讀 6110

#類的基本知識

#類物件的優點:多型,封裝,繼承

#多型from random import choice

s=['a',"b","c","d"]

ch=choice(s)#從列表中隨機選擇元素,並返回

print(ch)

#例:序列中的count函式為多態函式,不管時字串型別還是列表型別,都可以使用該函式

#很多函式和運算子都是多型的,不需要確定物件的具體型別

#封裝:是指向程式中的其他部分隱藏物件的具體實現細節的原則

#繼承:子類,超類(基類)

#class語句會在函式定義的地方建立自己的命名空間

_metaclass_=type#確定使用新式類,可以通過type(物件)來檢視例項物件所屬的類

class people:

def getname(self):#self引數為物件自身的引用

return self.name

def setname(self,name):

self.name=name

def print(self):

print("hello world! i'm %s."%self.name)

person=people()

person.setname("li")

print(person.getname())

person.print()

person.name='wang'

print(person.getname())

person.print()

#上述self引數:方法將它們的引數判定到所屬的例項上,因此無需顯示提供,方法和普通函式可以互相繫結,如下;

def prints():

print("function prins")

person.print=prints#函式繫結不能加括號

person.print()

func=person.print#通過變數引用類方法,實際上func還是繫結到了物件上,因為該方法訪問了自身

#預設情況下,可以在外部訪問物件的特性,可以通過在方法或特性的名字前面加雙下劃線可以變為私有的

class stu:

def __getid(self):

print("you can't see id!")

def myget(self):

self.__getid(self)

st=stu()

st._stu__getid()#實際上雙下劃線被解釋為單下劃線加加類名加私有方法,即這樣可以訪問

#from module import *:不會匯入前面有下劃線的名字

class stuff:

num=0#在類的作用域定義了乙個可供所用例項訪問的變數

def init(self):

stuff.num+=1

x=stuff()

x.init()

print(x.num)

y=stuff()

y.init()

print(y.num)

#上述x,y操作了同乙個變數,但可以將某個例項的該變數重新繫結到其他值上,而遮蔽類範圍內的變數

#超類:在類定義的類名後的圓括號裡指定多個該類的超類,子類可以擴充套件超類的定義

class others:

def output(x=none):

print("others data!")

class shape:

def init(self):

self.block=

def getdata(self,data):

return [x for x in data if x not in self.block]

class rect(shape,others):#多重繼承,若shape,others有同名方法,則shape的方法可用,而others的該方法被重寫(使其不可訪問)

def init(self):

self.block=['a']

sh=shape()

sh.init()

print(sh.getdata([1,2,3]))

r=rect()

r.init()

r.output()

print(r.getdata(['a','b','c']))

#使用內建函式issubclass(x,y)函式可以檢視乙個類x是不是另乙個類y的子類,返回布林值

print(issubclass(rect,shape))

print(rect.__bases__)#使用__base__或__bases__特性可以檢視類的基類

print(isinstance(r,rect))#使用函式isinstance(x,y)檢查x是否為類y的(間接)例項,返回布林值

print(r.__class__)#使用__class__特性檢查乙個物件屬於哪個類

執行結果:

類的基本知識

格式說明 類public static void main string args 方法 public class demo3 private static void method3 string name 在方法中宣告的引數叫做形參 傳遞的叫做實參 private static void meth...

Python基本知識

這次主要對python基礎語法及資料型別中與我使用過的語言不一樣的地方做下記錄 單行注釋使用 多行注釋使用 和 print 開始 這是個注釋 這是個段落注釋 這也是個段落注釋 print 結束 2.沒有bool型別,用數字0和1代替,可以與數字運算,python3中新增了true和false關鍵字 ...

Python基本知識

單例模式,是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例的特殊類。通過單例模式可以保證系統中,應用該模式的類乙個類只有乙個例項。即乙個類只有乙個物件例項。實現方法 裝飾器 sub replacement,string count 0 replacement是被替換的文字 string...