高階程式設計技巧之第一天(下)

2021-10-19 05:23:38 字數 3394 閱讀 3350

class

father

(object):

# 類屬性

cls_ins =

1def

__init__

(self, a, b)

:# 初始化方法

# 例項屬性/字段

self.a = a

self.b = b

# self.cls_ins = 886

zs = father(3,

4)print

(zs.cls_ins, zs.a, zs.b)

# 1 3 4

print

(father.cls_ins)

# print(father.a) # 這樣會報錯

"""物件 可以向上查詢 可以訪問到 類屬性

類不能向下查詢 所以 只能訪問到類屬性。 類名.例項屬性 報錯

"""father.cls_ins =

778# 覆蓋

zs.cls_ins =

886# 相當於封裝

print

(father.cls_ins)

print

(zs.cls_ins)

class

mytest

(object):

ins =

"cls_ins"

def__init__

(self)

: self.ins =

"ins"

t = mytest(

)print

(mytest.ins)

# cls_ins

print

(t.ins)

# ins

"""

稜形繼承

"""classd(

object):

pass

class

b(d)

:pass

class

c(d)

:pass

class

a(b, c)

:# 這裡a(b, c),中b表示在左邊,c表示在右邊

pass

print

(a.__mro__)

⾃省是通過⼀定的機制查詢到物件的內部結構

python中⽐較常⻅的⾃省(introspection)機制(函式⽤法)有: dir(),type(), hasattr(),isinstance(),通過這些函式,我們能夠在程式運⾏時得知物件的型別,判斷物件是否存在某個屬性,訪問物件的屬性

class

perpon

(object):

name =

"1234"

class

student

(perpon)

:def

__init__

(self, school_name)

: self.school_name = school_name

hty = student(

"xiaoming"

)print

(hty.__dict__)

# 當前物件(字典)的屬性

print

(dir

(hty)

)# (列表) dir()考慮到所有(包括繼承的)成員

"""

super基礎使用

"""classa(

object):

def__init__

(self)

:print

("a"

)class

b(a)

:def

__init__

(self)

:print

("b"

)# 重寫父類的構造方法 再呼叫父類的方法

super()

.__init__(

)b = b(

)

"""

軟編碼與硬編碼

"""class

person

(object):

def__init__

(self, name, age, weight)

: self.name = name

self.age = age

self.weight = weight

defspeak

(self)

:print

(f"說:我歲"

)class

student

(person)

:def

__init__

(self, name, age, weight, grade)

:# 軟編碼 -> 父類的名字可以隨便更改

# super().__init__(name, age, weight)

# 硬編碼

person.__init__(self, name, age, weight)

self.grade = grade

defspeak

(self)

:print

(f"說:我歲,我在年級"

)hz = student(

'hz',20

,120,2

)hz.speak(

)

多繼承下,super函式查詢⽗類的順序如何?

"""

super函式的繼承機制

"""classa(

object):

def__init__

(self)

:print

("a"

)class

c(a)

:def

__init__

(self)

:print

("b"

)super()

.__init__(

)class

b(a)

:def

__init__

(self)

:print

("c"

)super()

.__init__(

)class

d(b,c)

:def

__init__

(self)

:print

("d"

)super()

.__init__(

)if __name__ ==

'__main__'

: d = d(

)print

(d.__mro__)

# d c b a

程式設計集訓 第一天

一 基本概念 雜湊表 hash table,也叫雜湊表 是根據關鍵碼值 key value 而直接進行訪問的資料結構。也就是說,它通過把關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的速度。這個對映函式叫做雜湊函式,存放記錄的陣列叫做雜湊表。陣列 所謂陣列,是有序的元素序列。若將有限個型別相同的變...

併發程式設計第一天

synchronized修飾的地方 1.修飾物件,就是,新建乙個物件,修飾她,這樣每一次執行syschronized包裹的 塊,必須取得拿 到物件鎖然後才可以執行這個 塊 2.修飾公共的方法,這個鎖的擁有者就是thsi,就是這個類的例項 3.修飾靜態的方法,這個所得擁有者就是test.class髒讀...

第一天 SSIS 高階研討

extract 抽取 transformation 轉換 loading 載入 理解ssis的控制流和資料流 控制流是整個工作流程 而資料流是控制流中的一部分 典型業務場景 動手實驗 簡單範例 使用dtswizard匯出資料,儲存ssis包,再次執行,檢視dtsx檔案 1.把伺服器中的乙個資料庫的 ...