#Python 2.5
網站建設哪家好,找創新互聯公司!專注于網頁設計、網站建設、微信開發、微信小程序定制開發、集團企業網站建設等服務項目。為回饋新老客戶創新互聯還提供了桐柏免費建站歡迎大家使用!
#這個可以用修飾器來完成
#但是一般不會限制參數類型
#給你個思路:
def argfilter(*types):
def deco(func): #這是修飾器
def newfunc(*args): #新的函數
if len(types)==len(args):
correct = True
for i in range(len(args)):
if not isinstance(args[i], types[i]): #判斷類型
correct = False
if correct:
return func(*args) #返回原函數值
else:
raise TypeError
else:
raise TypeError
return newfunc #由修飾器返回新的函數
return deco #返回作為修飾器的函數
@argfilter(int, str) #指定參數類型
def func(i, s): #定義被修飾的函數
print i, s
#之后你想限制類型的話, 就這樣:
#@argfilter(第一個參數的類名, 第二個參數的類名, ..., 第N個參數的類名)
#def yourfunc(第一個參數, 第一個參數, ..., 第N個參數):
# ...
#
#相當于:
#def yourfunc(第一個參數, 第一個參數, ..., 第N個參數):
# ...
#yourfunc = argfilter(第一個參數的類名, 第二個參數的類名, ..., 第N個參數的類名)(yourfunc)
類Class:用來描述具體相同的屬性和方法的對象的集合。定義了該集合中每個對象所共有的屬性和方法。對象是類的示例。
類定義完成時(正常退出),就創建了一個 類對象。基本上它是對類定義創建的命名空間進行了一個包裝;我們在下一節進一步學習類對象的知識。原始的局部作用域(類定義引入之前生效的那個)得到恢復,類對象在這里綁定到類定義頭部的類名(例子中是 ClassName )。
基本語法
Python的設計目標之一是讓代碼具備高度的可閱讀性。它設計時盡量使用其它語言經常使用的標點符號和英文單字,讓代碼看起來整潔美觀。它不像其他的靜態語言如C、Pascal那樣需要重復書寫聲明語句,也不像它們的語法那樣經常有特殊情況和意外。
以上內容參考:百度百科-Python
類的概念:
類 Class: 用來描述具體相同的屬性和方法的對象的集合。定義了該集合中每個對象所共有的屬性和方法。對象是類的示例。
類變量:類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數體之外。類變量通常不作為實例變量使用。
實例變量:定義在方法中的變量,只作用于當前實例的類。
數據成員:類變量或者實例變量用于處理類及其實例對象的相關數據。
方法:類中定義的函數。在類內部,使用 def 關鍵字來定義一個方法,與一般函數定義不同,類方法必須包含參數 self, 且為第一個參數,self 代表的是類的實例。
構造函數:即__init()__,特殊的方法,在對象創建的時候被自動調用。
析構函數:即__del()__,特殊的方法,在對象被銷毀時被自動調用。
實例化:創建一個類的實例,類的具體對象。就是將創建的類賦值給另一個變量。理解為賦值即可,a = class(),這個過程,就叫做實例化
對象:通過類定義的數據結構實例。對象包括兩個數據成員(類變量和實例變量)和方法。
繼承:即一個派生類(derived class)繼承基類(base class)的字段和方法。繼承也允許把一個派生類的對象作為一個基類對象對待。例如,有這樣一個設計:一個Dog類型的對象派生自Animal類,這是模擬”是一個(is-a)”關系(例圖,Dog是一個Animal)。
方法重寫:如果從父類繼承的方法不能滿足子類的需求,可以對其 進行改寫,這個過程叫方法的覆蓋(override),也稱為方法的重寫。
————————————————
原文鏈接:
網頁鏈接