Python3 類和物件 與類和物件相關的BIF

2021-10-01 09:30:55 字數 3377 閱讀 1393

注意:1、這是不嚴格判斷,因為乙個類被認為是自身的子類

2、classinfo 可以是類物件組成的元組,只要class是其中任何乙個候選的子類則返回ture

3、在其他情況下丟擲typeerror的錯誤

class

a:

def__init__

(self):

print('

我是a類')

class

b(a):

def__init__

(self):

print('

我是b類繼承a')

class

c(b):

def__init__

(self):

print('

我是c類繼承b')

>>>issubclass(c,a)

true

>>>issubclass(c,b)

true

>>>issubclass(a,a)

true

>>> issubclass(a,object)#

所有類的父類都是object

true

>>>issubclass(a,c)

false

>>>issubclass(c,(a,b))

true

>>>

注意:1、如果第乙個引數不是物件則永遠返回false

2、如果第二個引數不是類或者由類物件組成的元組,會丟擲乙個typeerror的異常

class

a:

def__init__

(self):

print('

我是a類')

class

b(a):

def__init__

(self):

print('

我是b類繼承a')

class

c:

def__init__

(self):

print('

我是c類')

>>> a=a()

我是a類

>>>isinstance(a,a)

true

>>>isinstance(a,(c,a))

true

>>>isinstance(b,(c,a))

false

>>>isinstance(b,a)

traceback (most recent call last):

file

"", line 1, in

isinstance(b,a)

typeerror: isinstance() arg 2 must be a type or tuple of types

注意:name要用單引號『』括起來

class

a: size=10

def__init__

(self):

print('

我是a類')

>>> hasattr(a,'

size')

true

注意:當物件無該屬性時如果default沒賦值則會報錯,如果賦值則返回default的值

class

a: size=10

def__init__

(self):

print('

我是a類')

>>> getattr(a,'

lenth

','不存在該屬性')

'不存在該屬性

'

新建

1、直接物件.屬性 新建屬性

2.setattr(object,name,value)#name加單引號

刪除

delattr(類物件,name)

對類物件的屬性的刪除會影響到由該類所產生的例項物件,而不能用delattr(例項物件,name)來刪除屬性

class

a: size=10

def__init__

(self):

print('

我是a類')

>>> a=a()

我是a類

>>>a.size

10>>> a.y=1

>>>a.y

1>>>a.size

10>>>a.y

traceback (most recent call last):

file

"", line 1, in

a.yattributeerror: type object 'a

' has no attribute 'y'

>>> a.u=0

>>>a.u

0>>> delattr(a,'u'

)>>>a.u

traceback (most recent call last):

file

"", line 1, in

a.uattributeerror: 'a

' object has no attribute '

u'

引用小甲魚:

class

c:

def__init__(self, size=10):

self.size =size

defgetxsize(self):

return

self.size

defsetxsize(self, value):

self.size =value

defdelxsize(self):

delself.size

x.property(getxsize,setxsize,delxsize)

>>>c.x

10>>> c.x = 12

>>>c.x12#

使用函式修飾符

class

c:

def__init__(self, size=10):

self.size =size

@property

defx(self):

return

self.size

@x.setter

defx(self, value):

self.size =value

@x.deleter

defx(self):

del self.size

python3類和物件

類的定義和例項化 python定義簡單類如下。class car object pass c1 car 我們定義了乙個car類,其中什麼方法也沒有實現。c1是我們實力化的類 car,成為了乙個物件 可變引數 列表,字典,set 不可變引數 string,number,元組 全域性變數 宣告在函式外,...

Python3 類和物件 繼承

class derivedclassname baseclassname 子類 父類 如果子類中定義與父類同名的方法或屬性,則會自動覆蓋父類對應的方法或屬性,父類中的方法不受影響 1 呼叫未繫結的父類方法 class a def init self print 進入a print 離開a class...

Python3 物件導向程式設計(類和物件)

今天想和大家聊聊物件導向中的類和物件,其實一開始我學的雲裡霧裡,借鑑了乙個我以前看到過的解釋,希望可以用大家容易理解的方式來說道說道。生活中每乙個具體的東西都可以被認為是物件,例如華為p40 小公尺10 蘋果11 oppo等手機,你可以認為這些物體是 物件 雖然他們各不相同 各有特色,但是都可以歸結...