国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平武县| 枣庄市| 榆社县| 永新县| 清丰县| 新巴尔虎右旗| 东方市| 保靖县| 蒙城县| 屏东市| 闸北区| 重庆市| 化德县| 镶黄旗| 平湖市| 汤原县| 石台县| 沙雅县| 普兰县| 门头沟区| 井研县| 丹棱县| 濮阳县| 陵水| 贡山| 河津市| 三河市| 大足县| 凤山县| 滁州市| 文水县| 莱州市| 大名县| 鲜城| 三原县| 建始县| 昌江| 达日县| 密山市| 罗源县| 罗江县|