python高階 物件導向

2021-10-25 03:56:42 字數 2645 閱讀 9390

使用類名.__mro__可以檢視到下乙個呼叫的是哪個父類

import copy

deftest2

(a, b,

*args,

**kwargs)

:print

("-----"

)print

(a)print

(b)print

(args)

print

(kwargs)

deftest1

(a, b,

*args,

**kwargs)

:print

(a)print

(b)print

(args)

print

(kwargs)

test2(a, b,

*args,

**kwargs)

# 相當於(1,2,3,4,5,name="老王")

test1(1,

2,3,

4,5, name=

"老王"

)

class

province

(object):

# 類屬性

country =

'中國'

def__init__

(self, name)

:# 例項屬性

self.name = name

# 建立乙個例項物件

obj = province(

'山東省'

)# 直接訪問例項屬性

print

(obj.name)

# 直接訪問類屬性

print

(province.country)

class

foo(

object):

def__init__

(self, name)

: self.name = name

deford_func

(self)

:# 定義例項方法,至少有乙個self引數

print

(self.name)

@classmethod

defclass_func

(cls)

:# 定義類方法, 至少有乙個cls引數

print

("類方法"

) @staticmethod

defstatic_func()

:# 定義靜態方法, 無缺省引數

print

("靜態方法"

)f = foo(

"中國"

)# 呼叫例項方法

f.ord_func(

)# 呼叫類方法

foo.class_func(

)

為什麼需要靜態方法 : 為了這個方法可以實現一些東西 , 但是不需要傳參, 還需要把這個方法歸為一類

class

foo:

deffunc

(self)

:pass

# 定義property屬性

@property

defprop

(self)

:pass

foo_obj = foo(

)foo_obj.func(

)# 呼叫例項方法

foo_obj.prop # 呼叫property屬性

class

goods

: @property

defsize

(self)

:return

100good = goods(

)ret = good.size

print

(ret)

class

goods

:def

__init__

(self)

: self.original_price =

100 self.discount =

0.8 @property

defprice

(self)

: new_price = self.original_price * self.discount

return new_price

@price.setter

defprice

(self, value)

: self.original_price = value

@price.deleter

defprice

(self)

:del self.original_price

good = goods(

)price = good.price

print

(price)

good.price =

100print

(good.price)

del good.price

print

(good.price)

Python高階 物件導向程式設計

class user object pass按照慣例,類名以大寫字母開頭,緊接著是 object 表示該類是從 object 類進行繼承的。user user 可以在類的建構函式 init 定義類的屬性。class user object def init self,name,age self.na...

高階物件導向

最基本的物件導向寫法 建立建構函式 function aaa 構造方法 aaa.prototype.showname function 使用 建立例項 var a1 new aaa a1.showname 在js原始碼中 系統物件也是基於原型的程式 function array array.prot...

Python系列11 高階物件導向

在python中我們定義類通常是通過class語句來進行定義的。但是python直譯器在執行python類定義的時候,只是掃瞄了一類class語句定義,便呼叫了type python中的類和函式是動態建立的。在使用type 定義類時,括號內要傳入三個引數。class的名稱 繼承的分類結合,主義pyt...