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

鍍金池/ 教程/ Python/ 使用類與對(duì)象的變量
備份腳本——版本四
使用 <strong>init</strong> 方法
控制流
異常
表 15.1 一些特殊的方法
如何創(chuàng)建你自己的模塊
使用字典
前言
使用默認(rèn)參數(shù)值
表 5.1 運(yùn)算符與它們的用法
解決問(wèn)題——編寫一個(gè) Python 腳本
使用 for 語(yǔ)句
使用 continue 語(yǔ)句
使用元組輸出
對(duì)象與參考
使用函數(shù)形參
使用默認(rèn)參數(shù)值
使用 if 語(yǔ)句
如何引發(fā)異常
使用源文件
使用對(duì)象的方法
使用表達(dá)式
定義函數(shù)
使用局部變量
使用列表綜合
使用 sys.argv
使用 lambda 形式
使用 global 語(yǔ)句
備份腳本——版本二
使用列表
使用 while 語(yǔ)句
備份腳本——版本一
使用元組
輸入/輸出
使用類與對(duì)象的變量
使用 sys 模塊
表 5.2 運(yùn)算符優(yōu)先級(jí)
處理異常
使用 break 語(yǔ)句
函數(shù)
基本概念
運(yùn)算符與表達(dá)式
介紹
使用文件
使用序列
接下來(lái)學(xué)習(xí)什么?
使用帶提示符的 Python 解釋器
使用 DocStrings
使用字面意義上的語(yǔ)句
最初的步驟
數(shù)據(jù)結(jié)構(gòu)
儲(chǔ)存與取儲(chǔ)存
使用 dir 函數(shù)
模塊
Python 標(biāo)準(zhǔn)庫(kù)
備份腳本——版本三(不工作?。?/span>
創(chuàng)建一個(gè)類
安裝 Python
面向?qū)ο蟮木幊?/span>
使用模塊的<strong>name</strong>
使用變量和字面意義上的常量
使用繼承

使用類與對(duì)象的變量


    #!/usr/bin/python
    # Filename: objvar.py

    class Person:
         '''Represents a person.'''
        population = 0

        def __init__(self, name):
            '''Initializes the person's data.'''
            self.name = name
            print '(Initializing %s)' % self.name

            # When this person is created, he/she
            # adds to the population
            Person.population += 1

        def __del__(self):
            '''I am dying.'''
             print '%s says bye.' % self.name

            Person.population -= 1

            if Person.population == 0:
                print 'I am the last one.'
            else:
                print 'There are still %d people left.' % Person.population

        def sayHi(self):
            '''Greeting by the person.

            Really, that's all it does.'''
            print 'Hi, my name is %s.' % self.name

        def howMany(self):
            '''Prints the current population.'''
             if Person.population == 1:
                 print 'I am the only person here.'
            else:
                print 'We have %d persons here.' % Person.population

    swaroop = Person('Swaroop')
    swaroop.sayHi()
    swaroop.howMany()

    kalam = Person('Abdul Kalam')
    kalam.sayHi()
    kalam.howMany()

    swaroop.sayHi()
    swaroop.howMany()

(源文件:code/objvar.py

輸出


    $ python objvar.py
    (Initializing Swaroop)
    Hi, my name is Swaroop.
    I am the only person here.
    (Initializing Abdul Kalam)
    Hi, my name is Abdul Kalam.
    We have 2 persons here.
    Hi, my name is Swaroop.
    We have 2 persons here.
    Abdul Kalam says bye.
    There are still 1 people left.
    Swaroop says bye.
    I am the last one.

它如何工作

這是一個(gè)很長(zhǎng)的例子,但是它有助于說(shuō)明類與對(duì)象的變量的本質(zhì)。這里,population 屬于 Person 類,因此是一個(gè)類的變量。name 變量屬于對(duì)象(它使用 self 賦值)因此是對(duì)象的變量。

觀察可以發(fā)現(xiàn) init 方法用一個(gè)名字來(lái)初始化 Person 實(shí)例。在這個(gè)方法中,我們讓 population 增加 1,這是因?yàn)槲覀冊(cè)黾恿艘粋€(gè)人。同樣可以發(fā)現(xiàn),self.name 的值根據(jù)每個(gè)對(duì)象指定,這表明了它作為對(duì)象的變量的本質(zhì)。

記住,你只能使用 self 變量來(lái)參考同一個(gè)對(duì)象的變量和方法。這被稱為 屬性參考 。

在這個(gè)程序中,我們還看到 docstring 對(duì)于類和方法同樣有用。我們可以在運(yùn)行時(shí)使用 Person.doc 和 Person.sayHi.doc 來(lái)分別訪問(wèn)類與方法的文檔字符串。

就如同 init 方法一樣,還有一個(gè)特殊的方法del,它在對(duì)象消逝的時(shí)候被調(diào)用。對(duì)象消逝即對(duì)象不再被使用,它所占用的內(nèi)存將返回給系統(tǒng)作它用。在這個(gè)方法里面,我們只是簡(jiǎn)單地把 Person.population 減 1。

當(dāng)對(duì)象不再被使用時(shí), del 方法運(yùn)行,但是很難保證這個(gè)方法究竟在 什么時(shí)候 運(yùn)行。如果你想要指明它的運(yùn)行,你就得使用 del 語(yǔ)句,就如同我們?cè)谝郧暗睦又惺褂玫哪菢印?/p>

給 C++/Java/C#程序員的注釋
Python 中所有的類成員(包括數(shù)據(jù)成員)都是 公共的 ,所有的方法都是 有效的 。 只有一個(gè)例外:如果你使用的數(shù)據(jù)成員名稱以 雙下劃線前綴 比如 privatevar,Python 的名稱管理體系會(huì)有效地把它作為私有變量。 這樣就有一個(gè)慣例,如果某個(gè)變量只想在類或?qū)ο笾惺褂茫蛻?yīng)該以單下劃線前綴。而其他的名稱都將作為公共的,可以被其他類/對(duì)象使用。記住這只是一個(gè)慣例,并不是 Python 所要求的(與雙下劃線前綴不同)。 同樣,注意 del__ 方法與 destructor 的概念類似。

上一篇:備份腳本——版本四下一篇:介紹