聲明定義類型
創(chuàng)建對象
對象有自己的特征
名詞 變量(姓名)
對象有自己的行為
動詞 函數(shù) 方法
面向?qū)ο?/h1>
萬物皆有對象
類型
類型是一個名稱肆汹,是一個概念栓票, 是一個方法 是從大量具有相似外觀特征和相似行為的事物中抽象來的
事物
是某種類型具體存在的蔫饰,有具體特征的杈女、有具體行為的物體忱辅!
屬于某種類型的-> 屬于某種數(shù)據(jù)類型的
有具體的外觀特征
有具體的行為操作
生活:類型和事物
類型是事物抽象出來的一個稱呼/概念
事物是屬于某種類型的一個具體存在的物體
對象:
對象:有具體特征和行為操作的事物
代碼:有具體(特征)屬性和(行為)方法的對象-> 事物
#類型 VS 對象 區(qū)別滚停?
類型:通過對象抽象出來的一個數(shù)據(jù)類型
類型中需要定義對象需要的特征[屬性|變量]和行為[方法]
class Person:
# 定義屬性榆芦、特征
# 固定寫法:在__init__方法中柄粹,定義類型的屬性
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
# 定義方法、行為
def eat(self, food):
print("吃飯了")
注意1:class 關(guān)鍵字匆绣,用來聲明定義一個類型驻右,固定寫法
注意2:類型中的所有函數(shù),第一個參數(shù)self表示當前對象崎淳,類似生活中的一個名詞:我
注意3:類型中的函數(shù)堪夭,必須稱為方法;
函數(shù) VS 方法 : 兩個東西
方法是一種特殊的函數(shù)拣凹,只能在類型中使用森爽!
注意4:類型中方法,第一個參數(shù):指代的是當前對象~~~一般被聲明為self
表示當前對象嚣镜,調(diào)用的時候不需要傳遞數(shù)據(jù)給self爬迟!
對象:某中類型一個具體存在的事物
代碼中的對象,需要通過類型來創(chuàng)建
如:tom = Person('湯姆', 18, '男')
通過 類型名稱() 的方式創(chuàng)建對象
創(chuàng)建對象時菊匿,自動調(diào)用執(zhí)行__init__()方法付呕,將對象需要的數(shù)據(jù)傳遞過去
有了對象计福,就可以執(zhí)行對象的行為:調(diào)用對象的方法
通過 對象的變量.方法()直接調(diào)用
tom.eat("魚香肉絲")
類型:專門用來創(chuàng)建對象
創(chuàng)建對象:包含具體數(shù)據(jù)的實體
語法:
變量 = 數(shù)據(jù)類型()
- 對象:是有特征的?徽职!
對象是有特征的棒搜,項目需要這樣的特征,就定義它活箕,如果不需要就忽略它!
語法:對象的特征~是需要在類型中定義的可款!
在通過類型創(chuàng)建對象時育韩,才會給具體的特征賦值
給對象的特征賦值,固定語法:在init()函數(shù)中操作
class Author:
# 給對象的特征賦值,在init()中進行操作
def init(self, username, password, nickname):
self.username = username
self.password = password
self.nickname = nickname
python中通過類型創(chuàng)建對象[a = Author()]會自動調(diào)用init()方法
創(chuàng)建對象a = Author()-> Author.new()方法創(chuàng)建對象
-> Author.init()方法初始化數(shù)據(jù)
-> 得到一個Author對象
在Python中闺鲸,有一種特殊的函數(shù):魔法函數(shù)
每個魔法函數(shù)有一些特定的功能筋讨,方法名稱都是固定的
魔法函數(shù)的命名規(guī)則:函數(shù)的前后各有兩個下劃線!
-
對象摸恍,是有行為的悉罕?!
對象的行為立镶,分析~是否和對象本身的數(shù)據(jù)有關(guān)壁袄!
生活:分析~行為是否跟自己的身份和責任有關(guān)!對象的行為:對象的方法:就是一個普通函數(shù)的升級
將一個函數(shù)媚媒,定義在類型的內(nèi)部嗜逻,第一個參數(shù)~設(shè)置為可以接受對象的參數(shù):self
class Author:
# 定義一個行為:個人介紹
def introduction(self):
print("個人介紹.........")
注意:方法和函數(shù)的最大的區(qū)別:第一個參數(shù)可以隱式接受當前對象作為實際參數(shù)
方法是定義在類型的內(nèi)部的!
方法的調(diào)用必須通過對象的引用變量調(diào)用
函數(shù)中的任何形式參數(shù)缭召,在調(diào)用的時候都需要明確的傳遞數(shù)據(jù)
函數(shù)是定在在類型的外部的栈顷!
函數(shù)的調(diào)用直接通過函數(shù)名稱調(diào)用
調(diào)用執(zhí)行方法:類似與調(diào)用執(zhí)行函數(shù)
方法的調(diào)用執(zhí)行:必須通過對象的引用變量進行調(diào)用!
author = Author()
author.introduction()