国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python程序設計入門(5)類的使用簡介

2020-02-23 05:28:14
字體:
來源:轉載
供稿:網友

一、類的定義和使用

python定義一個類的基本語法是:

代碼如下:class classname([基類一,基類二...]):

    [def __init__(self, [agv1,agv2...]):]  # 定義構造函數

    def method1(self, [agv1,agv2...]):  # 成員函數

   
使用時用:

對象實例名 = 類名(參數列表)

對象實例名.成員函數名(參數列表)

和其它語言不同之處是:

(1) python沒有new關鍵字
(2) 成員函數必須帶有 self 參數(它相當于傳統語言里的 this )
(3) 成員變量不需要顯式定義,不過為了方便起見,大多數人還是會在構造函數里定義,以免過于莫名其妙。
例:
代碼如下:# -*- coding: gb18030 -*-
class mycls:

    def __init__(self, vl, vr):
        self.l = vl
        self.r = vr
    def show_me(self):
        print x.l, x.r

x = mycls(3, 15)
x.show_me()

二、高級應用

1、成員函數類型變量

python 可以直接把一個成員函數作為一個變量,就上面的類而言,可以這樣:

代碼如下:x = mycls(3, 15)
myx = x.show_me()
print 'I am a copy!/n'
myx

2、繼承和多繼承

要繼承其它類,定義時指定要繼承的基類即可
class classname([基類一,基類二...]):

3、私有成員

python實際上并沒有私有成員的概念,不過如果把變量名定義為 ___var (三個下劃線)這樣系統會自動把名稱改為 _classname___var,

這個值可以用 self.___var 讀取(因為會一起替換),但在外部是無法用  obj.___var 讀取的。

如:
代碼如下:class test_cls:

    def __init__(self):
        self.___aaa = 'I am a python!'

    def test_func(self):
        print self.___aaa

#這種方法能輸出正確結果
x = test_cls()
x.test_func()

#下面這種方法會報錯!
x = test_cls()
print x.___aaa

三、迭代器 和 發生器

在 python 中,很多東西都是可以用 for 來遍歷的,實際是這個東西的實現是通過迭代器或發生器來實現的

1、迭代器

代碼如下:class Reverse:
    def __init__(self, data):
        self.data = data
        self.index = len(data)

    def __iter__(self):
        return self

    def next(self):
        if self.index == 0:
            raise StopIteration
        self.index = self.index - 1

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 庆元县| 屯留县| 包头市| 连江县| 西吉县| 郧西县| 衢州市| 鄂州市| 文登市| 兰州市| 米泉市| 白河县| 抚州市| 沅江市| 三穗县| 阿克陶县| 玉林市| 武胜县| 安塞县| 金塔县| 定州市| 乐山市| 漳平市| 康保县| 沙坪坝区| 黑龙江省| 天津市| 师宗县| 榆树市| 扎囊县| 滦平县| 五河县| 盱眙县| 木里| 容城县| 四川省| 黄浦区| 浪卡子县| 信丰县| 宜昌市| 荥经县|