開學了進入了實驗室,需要協助大師兄做事,主要是OpenStack中的代碼解析,但是涉及很多python進階用法,一時間有點麻煩,在做項目的同時慢慢更新部落格。這次先寫一下__call__的用法,因為經常看到它卻不知道到底是幹嘛的。
通過查閱資料發現__call__實際上是将一個類重載了"()",也就是讓一個類也可以像一個函數一樣可以拿來調用了,說了也許還是不清晰,直接上例子。
#/usr/bin/env python
class test:
def __init__(self,a):
self.a = a
def __call__(self,b):
c = self.a+b
print c
def display(self):
print self.a
Test = test("This is test!")
Test.display()
Test("##Append something")
輸出結果:This is test!
This is test!##Append something
可以看出首先__init__函數類似于構造函數一樣初始化了self中的值,将a指派為“This is test!”,接着我們直接調用執行個體名,這裡就是__call__()起的作用了。
至于為什麼要這樣做,待我慢慢發現吧。
轉載于:https://www.cnblogs.com/puyangsky/p/4802434.html