亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Python > 正文

Python中的類和對象

2023-04-24 19:21:33
字體:
來源:轉載
供稿:網友

這篇文章將介紹Python中類和對象的定義和使用方法。

類和對象基礎知識

在面向對象世界里,我們在描述事物時一般從靜態特征和動態特征兩個方面進行描述。比如描述一個人,年齡、發色、臉型、身高等這些屬于靜態特征,而說話、跑步、走路等,這些屬于動態特征。

在實際中,我們到底需要描述事物的那些特征,這跟我們要研究的問題領域有關,比如同樣一個人,他作為學生時,我們可能關注他的學號、姓名、年齡、班級、專業、學習年限等靜態特征,可能關注他的選課、考試、參加體育活動等動態特征;如果他作為一個職工,可能我們要關注他的職工號、姓名、年齡、工作年數、職級、入職時間等靜態特征,可能關注他的晉職、加薪、辭職、退休等動態特征。

在面向對象里,我們把事物的靜態特征稱為屬性,而把動態特征稱為行為。

我們把具有相同屬性和行為的事物定義為一個類。

對象屬于類的一個實例,也就是說對象是類的一個具體的內容。如定義了一個學生類,則一個具體的學生張三就是學生的一個實例。

類是產生對象的一個模板,使用類定義的對象具有相同的屬性和行為,只不過屬性的取值可能不同,行為產生的最終結果可能不同。

在具體的編程語言中,有時屬性也稱之為類的變量,而行為稱之為類的方法或類的函數。

在具體的編程語言中,一個類可能既有屬性又有方法,也可能只有屬性,也可能只有方法。

Python中的類和對象

Python中類的定義方法

在Python中使用關鍵字class來定義一個類,其基本語法格式如下:

class className:
    # 類的屬性或方法

上面className表示類的名稱,類的名稱一般是個名詞,在Python中類的名稱后緊跟一個冒號,然后在下面定義它的屬性或方法。

類定義的一個例子

下面我們來定義個學生類。

class Student:
    student_id = '00000'
    student_name = '無名氏'

    def haveLesson(self):
        print(f'{self.student_id}的姓名是:{self.student_name}')
        print(f'{self.student_name}正在上課。')

上面這個例子定義了一個學生類,在里面定義了兩個變量,student_id和student_name并給出了默認值。由于Python中的變量無需事先定義直接可以使用,則如果定義的話必須給出一個值來。

haveLesson屬于類中定義的一個方法(函數),它跟定義普通方法的方式沒有什么區別,不過類中的每個方法都有一個參數self,它表示調用當前方法的類的對象實例。haveLesson()方法中用于輸出兩行信息。

在使用這個類定義對象時,所有對象在其兩個屬性上的取值都相同的。

定義類的實例(對象)

下面這個例子在上面例子的基礎上來定義實例并演示具體使用方法。

s1 = Student()
s1.haveLesson()

s1.student_id = '10011'
s1.student_name = '武林網'
s1.haveLesson()

上面這個例子演示了創建類對象的方法,Python跟其他面向對象語言不同,在定義實例(對象)時,直接使用s1 = Student()即可,無需使用new。

上面這個例子也演示了對象使用其屬性和方法的形式。

其輸出結果如下:

00000的姓名是:無名氏
無名氏正在上課。
10011的姓名是:武林網
武林網正在上課。

Python中定義類的構造器

類的構造器又稱類的構造函數或構造方法。Python中定義構造函數的方式與其它面向對象語言也不相同,它使用__init__()實現。

比如上面學生類的例子,使用它定義的每個對象都具有相同的student_id和student_name取值,如何在定義實例時獲得不同的取值呢?這就需要借助類的構造器了。

下面這個例子對上面的例子進行了改寫。

class Student:
    def __init__(self, sid, sname):
        self.student_id = sid
        self.student_name = sname

    def haveLesson(self):
        print(f'{self.student_id}的姓名是:{self.student_name}')
        print(f'{self.student_name}正在上課。')

s1 = Student('10011', '武林網')
s1.haveLesson()

s2 = Student('10012', '優雅的代碼')
s2.haveLesson()

其運行結果如下:

10011的姓名是:武林網
武林網正在上課。
10012的姓名是:優雅的代碼
優雅的代碼正在上課。

Python與其它面向對象編程語言不同的是,它不支持類構造函數的重載,即Python不支持在類中定義多個構造函數。最后一個定義的構造函數將會覆蓋掉前面定義的構造函數,同時Python不給出任何提示。如下面的例子:

class Student:
    def __init__(self, sid):
        self.student_id = sid

    def __init__(self, sid, sname):
        self.student_id = sid
        self.student_name = sname

    def haveLesson(self):
        print(f'{self.student_name}({self.student_id})在上課.')

s1 = Student('10011')
s1.haveLesson()

其運行結果如下:

Traceback (most recent call last):
  File "D:/Py/classInPython.py", line 12, in <module>
    s1 = Student('10011')
TypeError: Student.__init__() missing 1 required positional argument: 'sname'

從結果可以看出,因為最后定義的構造函數是帶2個參數的,因此在定義實例時使用1個參數將會給出TypeError錯誤。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品视频白浆免费视频| xxxx性欧美| 日韩在线观看av| 欧美大学生性色视频| 夜夜嗨av一区二区三区四区| 91精品久久久久久久久久| 久久久精品久久久| 国产亚洲精品综合一区91| 成人黄色av播放免费| 国产精品www| 色综合91久久精品中文字幕| 国产精国产精品| 国产成人福利视频| 国产mv免费观看入口亚洲| 午夜精品国产精品大乳美女| 亚洲香蕉成人av网站在线观看| 国产成人aa精品一区在线播放| 日本不卡高字幕在线2019| 国产福利精品av综合导导航| 色偷偷9999www| 久久精品夜夜夜夜夜久久| 欧美乱妇高清无乱码| 亚洲欧美日韩直播| 日韩欧美在线一区| 激情懂色av一区av二区av| 久久理论片午夜琪琪电影网| 久久久免费精品视频| 国产精品成人av性教育| 欧美大学生性色视频| 91精品视频在线播放| 欧美麻豆久久久久久中文| 456国产精品| 久久久中精品2020中文| 精品一区二区三区电影| 久久久久久久久久久久久久久久久久av| 精品久久久香蕉免费精品视频| 欧美最猛性xxxxx(亚洲精品)| 亚洲精品免费在线视频| 久久99精品视频一区97| 亚洲色图第三页| 日韩精品一区二区视频| 国产亚洲视频中文字幕视频| 91在线观看欧美日韩| 伊人伊成久久人综合网小说| 亚洲国产日韩欧美在线图片| 国产精品第二页| 一道本无吗dⅴd在线播放一区| 欧美在线xxx| 色妞久久福利网| 日韩精品免费在线视频| 国产精品久久一区| 九九视频这里只有精品| 国产中文字幕日韩| 欧美高清激情视频| 国产日本欧美一区二区三区在线| 国产亚洲视频在线观看| 亚洲国产精品成人精品| 成人国产在线激情| 91免费视频网站| 91精品国产综合久久久久久蜜臀| 亚洲人成网7777777国产| 欧美精品www在线观看| 日韩久久午夜影院| 亚洲视频第一页| 国产97在线|日韩| 亚洲精品永久免费精品| 国产视频综合在线| 亚洲一二在线观看| 日韩在线观看成人| 91国内精品久久| 97精品国产91久久久久久| 2019中文字幕在线观看| 欧美又大又粗又长| 国产91色在线|免| 亚洲免费福利视频| 精品福利樱桃av导航| 久久久在线视频| 欧美日韩国产综合视频在线观看中文| 日本欧美中文字幕| 福利一区视频在线观看| 国产亚洲精品久久久| 久久久久久999| 中文字幕日韩在线播放| www.亚洲天堂| 欧美丰满少妇xxxx| 欧美做受高潮1| 日本精品一区二区三区在线| 成人久久18免费网站图片| 亚洲人成在线播放| 中文精品99久久国产香蕉| 国产99久久久欧美黑人| 亚洲热线99精品视频| 欧美国产在线视频| 亚洲白虎美女被爆操| 欧美成aaa人片在线观看蜜臀| 欧美性jizz18性欧美| 亚洲欧美日韩一区二区三区在线| 亚洲国模精品私拍| 欧美日韩免费看| 国产视频精品一区二区三区| 亚洲性猛交xxxxwww| 自拍视频国产精品| 日韩三级影视基地| 日本高清不卡在线| 秋霞午夜一区二区| 中文字幕亚洲无线码在线一区| 在线精品高清中文字幕| 精品国产依人香蕉在线精品| 久久久精品一区| 美女视频黄免费的亚洲男人天堂| 国产精品久久久久久久久久免费| 亚洲精品久久久久久久久久久久久| 国产91精品最新在线播放| 亚洲国产中文字幕在线观看| 欧美性猛交xxxxx免费看| 成人有码在线播放| 亚洲专区国产精品| 伊人久久久久久久久久| 亚洲精品av在线播放| 欧美在线视频在线播放完整版免费观看| 日韩有码在线视频| 精品国产一区二区三区久久狼5月| 92国产精品久久久久首页| 午夜精品国产精品大乳美女| 久久久日本电影| 亚洲精品短视频| 日本不卡视频在线播放| 欧美最猛性xxxxx亚洲精品| 亚洲精品98久久久久久中文字幕| 日本亚洲欧洲色α| 欧美大片在线免费观看| 夜夜嗨av一区二区三区四区| 国产v综合v亚洲欧美久久| 国产亚洲人成a一在线v站| 久久久久久这里只有精品| 久久婷婷国产麻豆91天堂| 一区二区欧美在线| 国产一区二区日韩精品欧美精品| 亚洲a区在线视频| 欧美午夜片欧美片在线观看| 美日韩精品免费观看视频| 欧美成人午夜影院| 中文字幕亚洲欧美| 91干在线观看| 亚洲精品中文字幕女同| 亚洲国产精品久久久久秋霞不卡| 中文字幕亚洲综合久久筱田步美| 国产欧美精品在线| 午夜精品久久久久久久99热| 精品久久久久久中文字幕| 亚洲成人在线视频播放| 欧美高清自拍一区| 自拍偷拍亚洲区| 97色在线视频观看| 国产精品视频导航| 九色91av视频| 精品自拍视频在线观看| 国产成人精品视频在线观看| 亚洲精品久久久久中文字幕欢迎你| 国产成人午夜视频网址| 日韩欧美在线中文字幕| 富二代精品短视频| 亚洲日韩第一页| 色多多国产成人永久免费网站|