在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Python/ 二、類
二、Enum 的源碼
前言
一、Python 模塊簡介
一、List(列表)
五、匿名函數(shù)
三、什么是元類
二、循環(huán)語句
二、模塊的使用
三、第一個 Python 程序
線程與進程
Python
三、條件語句和循環(huán)語句綜合實例
四、對象的描述器
三、類的屬性
一、迭代
五、迭代器和生成器綜合例子
六、運算符相關(guān)的魔術(shù)方法
一、枚舉類的使用
前言
一、簡明概述
二、Python 的基本數(shù)據(jù)類型
多線程編程
五、作用域
四、包
四、枚舉的比較
四、Python 中的變量
六、類的多態(tài)
一、Python 中類也是對象
一、Python 的 Magic Method
前言
四、生成器
一、面向?qū)ο蟮母拍?/span>
五、類的繼承
二、類
二、使用 <code>type()</code> 動態(tài)創(chuàng)建類
進程
二、set
三、主模塊和非主模塊
一、字典(Dictionary)
前言
前言
前言
前言
四、集成開發(fā)環(huán)境(IDE): PyCharm
前言
四、函數(shù)的參數(shù)
三、lsit 生成式(列表生成式)
四、自定義元類
四、類的方法
二、函數(shù)傳值問題
二、注釋
一、條件語句
一、Python 語法的簡要說明
三、函數(shù)返回值
三、基本數(shù)據(jù)類型轉(zhuǎn)換
三、屬性的訪問控制
二、Python 的安裝
前言
三、命名規(guī)范
一、Python 自定義函數(shù)的基本步驟
三、自定義類型的枚舉
五、自定義容器(Container)
二、Python 迭代器
前言
二、tuple(元組)
一、Python 簡介
前言
前言
前言
二、構(gòu)造(<code>__new__</code>)和初始化(<code>__init__</code>)
前言

二、類

1、定義類

類定義語法格式如下:

class ClassName:
    <statement-1>
    .
    .
    .
    <statement-N>

一個類也是由屬性和方法組成的,有些時候我們定義類的時候需要設(shè)置類的屬性,因此這就需要構(gòu)造函

類的構(gòu)造函數(shù)如下:

def __init__(self,[...):

類定義了 init() 方法的話,類的實例化操作會自動調(diào)用 init() 方法。

那么如構(gòu)造函數(shù)相對應(yīng)的是析構(gòu)函數(shù),理所當(dāng)然,一個類創(chuàng)建的時候我們可以用過構(gòu)造函數(shù)設(shè)置屬性,那么當(dāng)一個類銷毀的時候,就會調(diào)用析構(gòu)函數(shù)。

析構(gòu)函數(shù)語法如下:

def __del__(self,[...):

仔細觀察的童鞋都會發(fā)現(xiàn),類的方法與普通的函數(shù)有一個特別的區(qū)別,它們必須有一個額外的第一個參數(shù)名稱, 按照慣例它的名稱是 self。

那么這個 self 代表什么呢?

我們可以看下實例,通過實例來找出答案:

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-

class Test:
    def prt(self):
        print(self)
        print(self.__class__)

t = Test()
t.prt()

觀察輸出的結(jié)果:

Python self

從執(zhí)行結(jié)果可以很明顯的看出,self 代表的是類的實例,輸出的是當(dāng)前對象的地址,而 self.__class__ 則指向類。

當(dāng)然 self 不是 python 關(guān)鍵字,也就是說我們把他換成其他的字符也是可以正常執(zhí)行的。只不過我們習(xí)慣使用 self

2、Python 定義類的歷史遺留問題

Python 在版本的迭代中,有一個關(guān)于類的歷史遺留問題,就是新式類和舊式類的問題,具體先看以下的代碼:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

# 舊式類
class OldClass:
    pass

# 新式類
class NewClass(object):
    pass

可以看到,這里使用了兩者中不同的方式定義類,可以看到最大的不同就是,新式類繼承了object 類,在 Python2 中,我們定義類的時候最好定義新式類,當(dāng)然在 Python3 中不存在這個問題了,因為 Python3 中所有類都是新式類。

那么新式類和舊式類有什么區(qū)別呢?

運行下下面的那段代碼:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

# 舊式類
class OldClass:
    def __init__(self, account, name):
        self.account = account;
        self.name = name;

# 新式類
class NewClass(object):
    def __init__(self, account, name):
        self.account = account;
        self.name = name;

if __name__ == '__main__':
    old_class = OldClass(111111, 'OldClass')
    print(old_class)
    print(type(old_class))
    print(dir(old_class))
    print('\n')
    new_class=NewClass(222222,'NewClass')
    print(new_class)
    print(type(new_class))
    print(dir(new_class))

仔細觀察輸出的結(jié)果,對比一下,就能觀察出來,注意喔,Pyhton3 中輸出的結(jié)果是一模一樣的,因為Python3 中沒有新式類舊式類的問題。