建構函式
建構函式是任何類都有的特殊方法。當要建立乙個類時,就要呼叫建構函式。他的名字是__init__。init的前後分別是兩個下劃線。時間類time的建構函式如下:
>>> class time:
... def __init__(self , hours = 0 , minutes = 0 , seconds = 0):
... self.hours = hours;
... self.mintues = minutes;
... self.seconds = seconds;
...
... def printtime(self):
... print str(self.hours)
...
...
...
>>> now = time(12,12,43)
>>> now
<__main__.time instance at 0x1783cf8>
>>> now.printtime()
12>>>
操作符重定義
>>> class rmb:
... def __init__(self,sum = 0.0):
... self.sum = sum;
...
... def __str__(self):
... return str(self.sum);
...
...
...
>>> a = rmb()
>>> b = rmb()
>>> a + b
traceback (most recent call last):
file "", line 1, in typeerror: unsupported operand type(s) for +: 'instance' and 'instance'
>>
我們定義了乙個rmb類,然後生成兩個例項,這兩個例項相加後,顯示了一條錯誤資訊,表示例項不能進行相加操作。錯誤資訊的意思是,加發操作暫時不支援兩個例項運算元。
為了使類的例項也可以進行數學操作,我們需要在類的內部重定義新定義的數學操作符,使之支援使用者定義的資料型別。很多人會立即意識到這不是c++中的操作符過載嗎?在這裡我們沒有過載這個詞。因為c++中的過載比python中的重定義的概念範圍要廣的很多,因此,我們使用重定義這個詞。下面我們修改這個rmb的類新增__add__ 和__sub__操作
>>> class rmb:
... def __init__(self , sum = 0.0):
... self.sum = sum;
...
... def __str__(self):
... return str(self.sum);
...
... def __add__(self , other):
... return rmb(self.sum + other.sum);
...
... def __sub__(self,other):
... return rmb(self.sum - other.sum);
...
...
...
>>> a = rmb(100)
>>> b = rmb(343)
>>> a + b
<__main__.rmb instance at 0x1783e60>
>>> print a + b
443>>> print a.__add__(b) , a + b
443 443
>>>
Python 中的類的相關操作
建構函式 建構函式是任何類都有的特殊方法。當要建立乙個類時,就要呼叫建構函式。他的名字是 init init的前後分別是兩個下劃線。時間類time的建構函式如下 class time def init self hours 0 minutes 0 seconds 0 self.hours hours...
python中mysql的相關操作
安裝第三方模組 mysqldb 安裝會自動檢測python的安裝環境的,不需要任何配置 一 相應dml命令 import os,sys,string import mysqldb 連線資料庫 try conn mysqldb.connect host 127.0.0.1 user root pass...
python中列表的相關操作
usr bin env python 初始化空列表 方式一 list test 方式二 list test1 list print 方式一建立的空列表 format list test list test print 方式二建的空列表 format list test1 list test1 初始化...