python面向对象的基本概念_面向对象的概念和基本语法,python,学习,笔记,一,基础...
一、概念
1.
特點
:注重對象和職責,不同的對象承擔不同的職責。更大的封裝,在一個對象中封裝多個方法。
2.
類
:
(1)創建
對象
的,包含屬性和方法。先有類,再有對象。不同對象之間的屬性可能不同。
(2)設計。三要素:類名(滿足大駝峰命名法,名詞提煉法)、屬性、方法。大駝峰命名法:CapWords 每個單詞的首字母大寫、單詞與單詞之間沒有下劃線。
二、面向對象基礎語法
1.dir內置函數
使用內置函數dir傳入標識符,可以查看對象內所有的屬性及方法。dir(demo)
__方法名__格式的方法,是python提供的內置方法/屬性。
2.定義簡單的類
(1)定義類
class 類名: # 大駝峰
def 方法1(self,參數列表) # 方法的第一個參數必須是self
pass
def 方法2(self,參數列表)
pass
(2)創建對象
對象 = 類名()
(3)實例
小貓愛吃魚,小貓要喝水。
class Cat:
def eat(self): #哪一個對象調用的方法,self就是哪一個對象的引用
print("小貓愛吃魚")
def drink(self):
print("小貓要喝水")
tom = Cat() # 使用類名加()創建一個對象,Cat()
tom.eat()
tom.drink()
3.方法中的self參數
(1)給對象添加屬性的簡單方式(不推薦)
在類的外部,定義完對象后,直接通過:對象名.屬性 添加即可
tom.name = "Tom"
單步調試技巧:打斷點------debug------F8 (F7是進入函數內部)
(2)設置對象屬性
哪一個對象調用的方法,self就是哪一個對象的引用
class Cat:
def eat(self):
print("%s 愛吃魚" % self.name)
def drink(self):
print("%s 要喝水" % self.name)
tom = Cat()
tom.name = "Tom"
tom.eat()
tom.drink()
輸出:
Tom 愛吃魚
Tom 要喝水
4.初始化方法
(1)__init__方法是專門用來定義一個類具有哪些屬性的方法
(2)使用類名()創建對象時,為對象分配空間、自動調動__init__方法
(3)在__init__方法內部使用self.屬性名 = 屬性初始值 就可以定義屬性。
class Cat:
def __init__(self):
self.name = "Tom"
def eat(self):
print("%s 愛吃魚" % self.name)
# 使用類名()創建對象的時候,會自動調用初始化方法 __init__
tom = Cat()
tom.eat()
輸出:Tom 愛吃魚
(4)改造初始化方法
存在的問題: 調用的每個對象名字都叫Tom
解決:在類的__init__中設置形參,在調用對象時傳入實參
class Cat:
def __init__(self,new_name):
self.name = new_name
def eat(self):
print("%s 愛吃魚" % self.name)
tom = Cat("Tom")
tom.eat()
lazy_cat = Cat("大懶貓")
lazy_cat.eat()
輸出:
Tom 愛吃魚
大懶貓 愛吃魚
5.內置方法和屬性
(1)__del__方法
使用類名()創建對象時,為對象分配空間、自動調動__init__方法
當一個對象被從內存銷毀前,會自動調用__del__方法
因此,如果希望在對象被銷毀前,在做一些事情,可以考慮__del__方法
class Cat:
def __init__(self,new_name):
self.name = new_name
print("%s 來了" % self.name)
def __del__(self):
print("%s 走了" % self.name)
# tom 是一個全局變量,當所有代碼執行完成后,系統才會銷毀tom
tom = Cat("Tom")
# 但 del 關鍵字可以刪除一個對象
del tom
print("-" * 50)
輸出:
Tom 來了
Tom 走了
--------------------------------------------------
(2)__str__方法
直接print(對象名),默認輸出所屬的類和對象的內存地址。<
main
.Cat object at 0x00000221217E9708>
若在類的初始化中使用__str__,當print(對象名)的時候,就可以打印自定義的內容。
注意:__str__必須返回一個字符串。
class Cat:
def __init__(self,new_name):
self.name = new_name
print("%s 來了" % self.name)
def __del__(self):
print("%s 走了" % self.name)
def __str__(self):
return "我是一小貓[%s]" % self.name # 必須返回一個字符串
tom = Cat("Tom")
print(tom)
輸出:
Tom 來了
我是一小貓[Tom]
Tom 走了
總結
以上是生活随笔為你收集整理的python面向对象的基本概念_面向对象的概念和基本语法,python,学习,笔记,一,基础...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: go语言适合用来做什么
- 下一篇: python自动化办公第二节_自动化测试