對象,類、面向對象編程
對象:
對象是特征與技能的結合體
類:
對象是特征與技能的結合體,而類則是一系列對象相同的特征與技能的結合體
強調:
1.對象是具體存在的事物,而類則一個抽象的概念
2.站在不同的角度總結出的類與對象是不同的
在現實世界中:先有一個個具體存在的對象,然後隨著人類文明的發展才總結出類的概念
在程序中: 先定義類,後調用類來產生對象
class OldboyStudent:
#相同的特征
school = ‘oldboy‘
#相同的技能
def choose_course(self):
print(‘choosing course‘)
# print(‘===>>>‘)
# 類是一系列對象相同的特征(變量)與技能(函數)的結合體,即類體中最常見的就是變量與函數的定義
# 但其實類體中是可以存在任意python代碼的
# 類體代碼會在類定義階段立即執行,會產生一個類名稱空間,用來將類體代碼執行過程中產生的名字都丟進去,查看 方式如下
先定義類,後調用類來產生一個對象
# 總結:
#1. 類本質就是一個名稱空間,或者說是一個用來存放變量與函數的容器
#2. 類的用途之一就是當做名稱空間從其內部取出名字來使用
#3. 類的用途之二是調用類來產生對象
#. 後調用類來產生對象:
# 調用類的過程稱之為類的實例化
# 調用類發生了?
# 1. 會產生一個對象,然後返回
class OldboyStudent:
#相同的特征
school = ‘oldboy‘
# stu1,‘李鐵蛋‘,18,‘male‘
def __init__(obj, name, age, sex):
obj.name = name #stu1.name=‘李鐵蛋‘
obj.age = age #stu1.age=18
obj.sex = sex #stu1.sex=‘male‘
#相同的技能
def choose_course(self):
print(‘choosing course‘)
stu1=OldboyStudent(‘李鐵蛋‘,18,‘male‘) #__init__(stu1,‘李鐵蛋‘,18,‘male‘)
# 總結__init__的功能: 是在實例化時就為對象初始自己獨有的特征
# 註意:不能有返回值
# 1. 屬性查找順序
# 先從對象自己的名稱空間找,沒有則去所屬的類中找
# 類中定義的變量是所有對象共享的,對象可以來用,類也可以來使用,類一旦改變自己的數據屬性的值,所有 的對象都能感知到
#類中定義的變量是類的數據屬性,類可以用,對象也可以用,大家都指向同一個內存地址,類變量值一旦改變所 有對象都跟著變
#類中定義的函數是類的函數屬性,類可以用,類來調用就是一個普通的函數,但其實類中定義的函數是給對象 用的,而且是綁定給對象用的
# 1. 類的函數: 該傳幾個參數就傳幾個
# 2. 綁定方法,指向類的函數: 特殊之處是綁定給誰就應該由誰來調用,誰來調用就會將誰當做第一個參數自 動傳入
# stu1.choose_course()
在python3 中定義了一切皆對象
對象,類、面向對象編程