一妆丘、面向?qū)ο?/h3>
1忘古、定義
- python是一門面向?qū)ο蟮恼Z(yǔ)言
- 所謂的面向?qū)ο笤雌褪窃诰幊痰臅r(shí)候盡可能的去模擬真實(shí)的現(xiàn)實(shí)世界,按照現(xiàn)實(shí)世界中的邏輯去處理問題壹置,分析問題中參與其中的有哪些實(shí)體竞思,這些實(shí)體該有什么屬性和方法,我們?nèi)绾瓮ㄟ^調(diào)用這些實(shí)體的屬性和方法去解決問題
2钞护、兩種編程思想
1)面向過程
- 一種以過程為中心的編程思想
- 首先分析解決問題所需要的步驟盖喷,然后用函數(shù)將這些步驟一步一步的實(shí)現(xiàn),然后按順序依次調(diào)用運(yùn)行
2)面向?qū)ο?/h5>
- 一種更符合我們?nèi)祟愃季S習(xí)慣的編程思想
- 復(fù)雜的事情簡(jiǎn)單化
- 面向?qū)ο箝_發(fā)就是不斷的創(chuàng)建對(duì)象难咕,使用對(duì)象课梳,操作對(duì)象做事情
3、面向?qū)ο蟪绦蛟O(shè)計(jì)規(guī)則
- 首先分析有哪些類
- 每個(gè)類有哪些屬性和行為
- 類與類之間存在的關(guān)系
4余佃、類头滔、方法节槐、類變量的定義
- 類(class):用來描述具有相同的屬性和方法的對(duì)象的集合。它定義了集合中每個(gè)對(duì)象所共有的屬性和方法。對(duì)象是類的實(shí)例
- 方法:類中定義的函數(shù)晨另。類的方法與普通的函數(shù)只有一個(gè)特別的區(qū)別——他們必須有一個(gè)額外的第一個(gè)參數(shù)名稱,按照慣例它的名稱是self(其實(shí)取什么名字不重要灭将,只是有這個(gè)參數(shù)就行泄伪,默認(rèn)系統(tǒng)叫self)
- 類變量:類變量在整個(gè)實(shí)例化的對(duì)象是公用的,類變量定義在類中且在函數(shù)體之外立润,類變量通常不作為實(shí)例變量使用
class Person():
name = ''
def get_name(self):
return self.name
print('summer')
5狂窑、實(shí)例引用、實(shí)例變量
- 實(shí)例:類的一個(gè)具體對(duì)象桑腮,比如泉哈,車類是一個(gè)類,摩托車或者自行車就是車類的一個(gè)實(shí)例,類是抽象的丛晦,實(shí)例是具體的
- 實(shí)例引用:給一個(gè)對(duì)象起一個(gè)別名奕纫,比如,a是對(duì)象烫沙,b是a的引用匹层,則a和b的地址空間都是一樣的,修改b锌蓄,則a就被同時(shí)修改
- 實(shí)例變量:實(shí)例屬性升筏,在任意方法內(nèi)部,以‘self.變量名’的方式定義的變量瘸爽。實(shí)例變量只能通過對(duì)象名訪問您访,無法通過類名訪問
class Person():
name = 'summer'
def get_name(self):
return self.name
print(Person.name)
# 實(shí)例化類
p = Person()
# 調(diào)用屬性
print(p.name)
# 調(diào)用方法
print(p.get_name())
# 修改實(shí)例的屬性
# p.name = 'xulinshan'
# print(p.name)
# 修改類的屬性
Person.name = 'xuduo'
print(Person.name)
# 再調(diào)用實(shí)例,實(shí)例同樣被修改
print(p.name)
# 先修改類的屬性剪决,再修改實(shí)例的屬性灵汪,仍然是被修改
Person.name = 'xulinshan'
p.name = 'xuduo'
print(p.name)
# 先修改實(shí)例的屬性,
p.name = 'XUDUO'
Person.name = 'XULINSHAN'
# 再創(chuàng)建實(shí)例2
p1 = Person()
# 修改實(shí)例2的屬性柑潦,實(shí)例1的屬性不會(huì)被修改
p1.name = 'xls'
print(p.name)
class Person:
# init方法是當(dāng)我們調(diào)用class的時(shí)候享言,會(huì)用到的構(gòu)造函數(shù)
# 公有屬性
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
# 私有屬性
def set_att(self,value):
self.value = value
# 定義共有的方法
def eat(self):
print(f'name:{self.name},age:{self.age},gender:{self.gender} 我在吃')
def drink(self):
print(f'name:{self.name},age:{self.age},gender:{self.gender} 我在喝')
def run(self):
print(f'name:{self.name},age:{self.age},gender:{self.gender} 我在跑')
# 實(shí)例化
summer = Person('summer', 26, '女')
glf = Person('glf', '28', '男')
print(summer.name)
summer.eat()
summer.drink()
summer.run()
print(glf.name)
glf.set_att('fit')
print(glf.value)
- 一種更符合我們?nèi)祟愃季S習(xí)慣的編程思想
- 復(fù)雜的事情簡(jiǎn)單化
- 面向?qū)ο箝_發(fā)就是不斷的創(chuàng)建對(duì)象难咕,使用對(duì)象课梳,操作對(duì)象做事情
3、面向?qū)ο蟪绦蛟O(shè)計(jì)規(guī)則
- 首先分析有哪些類
- 每個(gè)類有哪些屬性和行為
- 類與類之間存在的關(guān)系
4余佃、類头滔、方法节槐、類變量的定義
- 類(class):用來描述具有相同的屬性和方法的對(duì)象的集合。它定義了集合中每個(gè)對(duì)象所共有的屬性和方法。對(duì)象是類的實(shí)例
- 方法:類中定義的函數(shù)晨另。類的方法與普通的函數(shù)只有一個(gè)特別的區(qū)別——他們必須有一個(gè)額外的第一個(gè)參數(shù)名稱,按照慣例它的名稱是self(其實(shí)取什么名字不重要灭将,只是有這個(gè)參數(shù)就行泄伪,默認(rèn)系統(tǒng)叫self)
- 類變量:類變量在整個(gè)實(shí)例化的對(duì)象是公用的,類變量定義在類中且在函數(shù)體之外立润,類變量通常不作為實(shí)例變量使用
class Person():
name = ''
def get_name(self):
return self.name
print('summer')
5狂窑、實(shí)例引用、實(shí)例變量
- 實(shí)例:類的一個(gè)具體對(duì)象桑腮,比如泉哈,車類是一個(gè)類,摩托車或者自行車就是車類的一個(gè)實(shí)例,類是抽象的丛晦,實(shí)例是具體的
- 實(shí)例引用:給一個(gè)對(duì)象起一個(gè)別名奕纫,比如,a是對(duì)象烫沙,b是a的引用匹层,則a和b的地址空間都是一樣的,修改b锌蓄,則a就被同時(shí)修改
- 實(shí)例變量:實(shí)例屬性升筏,在任意方法內(nèi)部,以‘self.變量名’的方式定義的變量瘸爽。實(shí)例變量只能通過對(duì)象名訪問您访,無法通過類名訪問
class Person():
name = 'summer'
def get_name(self):
return self.name
print(Person.name)
# 實(shí)例化類
p = Person()
# 調(diào)用屬性
print(p.name)
# 調(diào)用方法
print(p.get_name())
# 修改實(shí)例的屬性
# p.name = 'xulinshan'
# print(p.name)
# 修改類的屬性
Person.name = 'xuduo'
print(Person.name)
# 再調(diào)用實(shí)例,實(shí)例同樣被修改
print(p.name)
# 先修改類的屬性剪决,再修改實(shí)例的屬性灵汪,仍然是被修改
Person.name = 'xulinshan'
p.name = 'xuduo'
print(p.name)
# 先修改實(shí)例的屬性,
p.name = 'XUDUO'
Person.name = 'XULINSHAN'
# 再創(chuàng)建實(shí)例2
p1 = Person()
# 修改實(shí)例2的屬性柑潦,實(shí)例1的屬性不會(huì)被修改
p1.name = 'xls'
print(p.name)
class Person:
# init方法是當(dāng)我們調(diào)用class的時(shí)候享言,會(huì)用到的構(gòu)造函數(shù)
# 公有屬性
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
# 私有屬性
def set_att(self,value):
self.value = value
# 定義共有的方法
def eat(self):
print(f'name:{self.name},age:{self.age},gender:{self.gender} 我在吃')
def drink(self):
print(f'name:{self.name},age:{self.age},gender:{self.gender} 我在喝')
def run(self):
print(f'name:{self.name},age:{self.age},gender:{self.gender} 我在跑')
# 實(shí)例化
summer = Person('summer', 26, '女')
glf = Person('glf', '28', '男')
print(summer.name)
summer.eat()
summer.drink()
summer.run()
print(glf.name)
glf.set_att('fit')
print(glf.value)