python物件導向

2021-09-22 19:29:19 字數 3586 閱讀 6396

class

myclass

:# class開頭,類命名必須採用大駝峰格式,

"""a example of class"""

# 文件字串

x ='abc'

deffoo

(self)

:print

('foo method'

)print

(myclass.__doc__)

print

(myclass.x)

# 訪問屬性

print

(myclass.foo)

# 訪問方法,foo後不能再帶括號了

print

(myclass.__name__)

# 結果為字串

class

person

:def

__init__

(self, name, age)

:# 初始化——出場配置,對生成的例項進行屬性配置;__init__方法不能有返回值

self.name = name # self為當前例項,self.name為當前例項的name屬性

self.age = age

defshowage

(self)

:print

(self.age, self.name)

t = person(

'tom',20

)# 括號裡的引數必須與__init__相同,self不用給

j = person(

'jerry',18

)# 例項化,注意兩個例項是完全不同的;右邊先例項化,再初始化

print

(t.name, t.age)

# 例項的屬性

print

(j.name, j.age)

t.showage(

)# python語法看到例項呼叫,會隱含的將t例項注入到showage中

# print(person.showage()) # 會丟擲異常,showage中缺少引數

print

(person.showage)

print

(person.showage(t)

)print

(j.showage)

# 繫結,將j和self綁在一起

j.age +=

1j.showage(

)

class

person

: age =

20def

__init__

(self, name)

:# 初始化——出場配置,對生成的例項進行屬性配置;__init__方法不能有返回值

self.name = name # self為當前例項,self.name為當前例項的name屬性

print

(self,

id(self)

)def

show_age

(self)

:return self.age

t = person(

'tom'

)# 括號裡的引數必須與__init__相同,self不用給

j = person(

'jerry'

)# 例項化,注意兩個例項是完全不同的;右邊先例項化,再初始化

print

(t.name, t.age)

# 例項變數是每乙個例項自己的變數,是自己獨有的;類變數是類的變數,是類所有例項共享的屬性和方法

print

(j.name, j.age)

person.age =

40print

(j.age)

# 注意j.age值的變化

print

(t.age)

print

(person.__class__,

type

(person)

)# 兩者是等價的

print

(person.__name__)

# 結果為字串

print

(person.__class__.__name__,

type

(person)

.__name__)

# 結果為字串

print

(person.__dict__)

# 所有的類屬性全在字典中,__init__也是類屬性,也在字典中

t1 = person(

'tom'

)print

(t1.__class__,

type

(t1)

)# 返回的是型別,不是字串

print

(t1.__class__.__class__.__name__)

# 返回值為字串'type'

print

(t1.__dict__)

# 例項的屬性,所以其字典中只有name屬性

t2 = person(

'jerry'

)print

(t2.__dict__)

# 字典中只有name屬性

class

person

: age =

3 height =

190def

__init__

(self, name, age=18)

: self.name = name

self.age = age

tom = person(

'tom'

)jerry = person(

'jerry',20

)person.age =

30print(1

, person.age, tom.age, jerry.age)

print(2

, person.height, tom.height, jerry.height)

jerry.height =

187print(3

, person.height, tom.height, jerry.height)

tom.height +=

10print(4

, person.height, tom.height, jerry.height)

person.weight =

80print(5

, person.weight, tom.weight, jerry.weight)

# 例項自己沒有,直接找字典要,字典沒有直接丟擲異常

# print(6, tom.__dict__['weight']) # 會丟擲異常,因為例項字典中沒有weight屬性

print(7

, tom.weight)

# 不會出錯,因為tom.weight是屬性訪問,自己沒有此屬性的話,會找類要,類沒有才會丟擲異常

是類的,也是這個類所有例項的, 其實例都可以訪問到;

是例項的,就是例項自己的,通過類是訪問不到的;

類變數是屬於類的變數,這個類的所有例項可以共享這個變數

python物件導向學習 python物件導向學習

物件導向最重要的概念就是類 class 和例項 instance 必須牢記類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的 物件 每個物件都擁有相同的方法,但各自的資料可能不同。物件導向三個概念 1.封裝 即把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法讓可信的類進...

python物件導向總結 Python物件導向總結

python 物件導向 oop 1 物件導向 是乙個更大封裝,把乙個物件封裝多個方法 2 類 是對一些具有相同特徵或行為的事物的乙個統稱,是抽象的,不能直接使用 特徵被稱為屬性 行為被稱為方法 3 物件 是由類建立出來的乙個具體的存在,可以直接使用 先有類再有物件,類只有乙個,而物件可以有多個 類中...

python登入物件導向 python 物件導向

一 屬性和方法 1.a a 例項屬性 通過例項物件來新增的屬性就是例項屬性 a.count 10 例項方法都是在類中直接定義的 以self為第乙個引數的方法都是例項方法 當通過例項物件呼叫時,會自動傳遞當前物件作為self傳入 當通過類物件呼叫時,不會自動傳遞self a.test 等價於 a.te...