Python面向?qū)ο笾惡蛯?duì)象
類
定義類
- 所有類名首字母要求大寫,多個(gè)單詞時(shí)遵循駝峰命名法
- 所有未定義父類的類都繼承object
格式:class 類名[(父類)]:
#兩種方式意思相同
class Person:
pass
class Person(object):
pass
定義類和屬性
name、age、subject就是類屬性
class Student:
#類屬性
name = ''
age = 0
subject = []
類中方法
對(duì)象方法(普通方法)
格式:
def 方法名(self[,parm1,parm2...]):
pass
self就是對(duì)象本身
class Student:
# 類屬性
name = 'student'
age = 0
subject = []
# 普通方法
def study(self):
print(self.name, '正在學(xué)習(xí)...')
xiaoming = Student()
xiaoming.name = 'xiaoming'
xiaoming.study()
------------
輸出:
xiaoming 正在學(xué)習(xí)...
class Student:
# 類屬性
name = 'student'
age = 0
subject = []
# 普通方法
def study(self, name):
print(name, '正在學(xué)習(xí)...')
s1 = Student()
s1.study('xiaohong')
----------------
輸出:
xiaohong 正在學(xué)習(xí)...
類方法
格式:
@classmethod
def 方法名(cls):
pass
- 類方法使用@classmethod裝飾器
- 對(duì)象方法傳入的是self,類方法傳入的是cls
- 類方法可以直接用類調(diào)用,或者可以用類的實(shí)例(對(duì)象)調(diào)用
class Dog:
dog_type = '阿拉斯加'
def __init__(self, nickname):
self.name = nickname
def dog_run(self):
print('{}在公園里跑.看起來(lái)是一只{}.'.format(self.name, self.dog_type))
@classmethod
def dog_sit(cls):
print(cls.dog_type, '很乖,坐下了')
dog1 = Dog('肉丸')
dog1.dog_type = '小泰迪'
dog1.dog_run()
Dog.dog_sit()
--------------
輸出:
肉丸在公園里跑.看起來(lái)是一只小泰迪.
阿拉斯加 很乖,坐下了
靜態(tài)方法
- 靜態(tài)方法使用裝飾器@staticmethod
- 靜態(tài)方法沒有參數(shù)
- 當(dāng)方法跟類屬性和對(duì)象屬性都沒有關(guān)系的時(shí)候,使用靜態(tài)方法
- 支持對(duì)象和類名直接調(diào)用
class Dog:
def __init__(self, nickname):
self.name = nickname
@staticmethod
def dog_sit():
print('很乖,坐下了')
dog1 = Dog('肉丸')
dog1.dog_sit()
Dog.dog_sit()
---------------------
輸出:
很乖,坐下了
很乖,坐下了
魔術(shù)方法
格式:
def __方法名__(self):
pass
__init__() 構(gòu)造函數(shù)
- 如果沒有__init__。直接利用類向內(nèi)存申請(qǐng)一個(gè)和類一樣的空間,給到對(duì)象。
- 如果有__init__。利用類向內(nèi)存申請(qǐng)一個(gè)和類一樣空間,內(nèi)存空間(self)傳遞給__iniy__,執(zhí)行__init__的函數(shù)。最后將內(nèi)存空間給到對(duì)象。
對(duì)象
創(chuàng)建對(duì)象
格式:對(duì)象名 = 類名()
class Student:
#類屬性
name = ''
age = 0
subject = []
xiaoming = Student()
對(duì)象屬性
- 當(dāng)創(chuàng)建了對(duì)象時(shí),對(duì)象會(huì)繼承類的屬性。獲取屬性的時(shí)候,也是從類中獲取屬性。
- 當(dāng)對(duì)默認(rèn)的類屬性賦值后(對(duì)象名.屬性 = xxxx),屬性才會(huì)變成對(duì)象屬性。
class Student:
# 類屬性
name = 'student'
age = 0
subject = []
xiaoming = Student()
print('類屬性:', xiaoming.name) # 此時(shí)是從類中獲取的類屬性
xiaoming.name = 'xiaoming' # 因?yàn)橘x值了,此時(shí)變成了對(duì)象屬性
print('對(duì)象屬性:', xiaoming.name)
-------------
輸出:
類屬性: student
對(duì)象屬性: xiaoming
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Python快速實(shí)現(xiàn)簡(jiǎn)易貪吃蛇小游戲的示例代碼
貪吃蛇(也叫做貪食蛇)游戲是一款休閑益智類游戲,有PC和手機(jī)等多平臺(tái)版本。既簡(jiǎn)單又耐玩。本文將利用Python語(yǔ)言快速實(shí)現(xiàn)簡(jiǎn)易貪吃蛇小游戲,感興趣的可以嘗試一下2022-10-10
創(chuàng)建SparkSession和sparkSQL的詳細(xì)過(guò)程
SparkSession 是 Spark SQL 的入口,Builder 是 SparkSession 的構(gòu)造器。 通過(guò) Builder, 可以添加各種配置,并通過(guò) stop 函數(shù)來(lái)停止 SparkSession,本文給大家分享創(chuàng)建SparkSession和sparkSQL的詳細(xì)過(guò)程,一起看看吧2021-08-08
Django中對(duì)通過(guò)測(cè)試的用戶進(jìn)行限制訪問(wèn)的方法
這篇文章主要介紹了Django中對(duì)通過(guò)測(cè)試的用戶進(jìn)行限制訪問(wèn)的方法,Django是眾多Python高人氣web框架中最為著名的一個(gè),需要的朋友可以參考下2015-07-07
pandas數(shù)據(jù)探索之合并數(shù)據(jù)示例詳解
這篇文章主要為大家介紹了pandas數(shù)據(jù)探索之合并數(shù)據(jù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
python 利用for循環(huán) 保存多個(gè)圖像或者文件的實(shí)例
今天小編就為大家分享一篇python 利用for循環(huán) 保存多個(gè)圖像或者文件的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
python將類似json的數(shù)據(jù)存儲(chǔ)到MySQL中的實(shí)例
今天小編就為大家分享一篇python將類似json的數(shù)據(jù)存儲(chǔ)到MySQL中的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
Python中帶時(shí)區(qū)的日期轉(zhuǎn)換工具類總結(jié)
這篇文章主要為大家詳細(xì)介紹了一些Python中帶時(shí)區(qū)的日期轉(zhuǎn)換工具類,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以跟隨小編一起了解一下2023-05-05
Softmax函數(shù)原理及Python實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Softmax函數(shù)原理及Python實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05

