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...