Python __call__內置函數的作用和用法


  開學了進入了實驗室,需要協助大師兄做事,主要是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__()起的作用了。

至於為什么要這樣做,待我慢慢發現吧。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM