classmethod和setUpClass的用法

裝飾器@staticmethod、@classmethod

https://taizilongxu.gitbooks.io/stackoverflow-about-python/content/14/README.html

class A(object): 
    def foo(self,x): 
        print "executing foo(%s,%s)"%(self,x) 
    @classmethod 
    def class_foo(cls,x): 
        print "executing class_foo(%s,%s)"%(cls,x) 
    @staticmethod 
    def static_foo(x): 
        print "executing static_foo(%s)"%x
a=A()
a.class_foo(1)
A.class_foo(1)
a. static_foo(1)
A. static_foo(1)

用classmethod裝飾的是類方法,可以通過類直接調用,類方法的第一個參數不是類的對象實例,而是類;而普通的方法則是必須通過類的實例對象去調用,所以第一個參數都會是類的實例self;
用static method裝飾的方法,不管傳遞給第一個參數的是self (對象實體)還是cls(類).它們的表現都一樣。靜態方法,說到底它就是一個方法

setUpClass

我的代碼中有這樣的用法:

class HelloTests(unittest.TestCase):   
      @classmethod    
      def setUpClass(cls):#setUpClass must be a class method  
          ****
      @classmethod
      def tearDownClass(cls):     
             cls.driver.quit()
      def test_process(self):
           ****

setup、teardown方法在每執行一個TestCase時,都會重新執行一遍,
當只想要在整個文件中進行一次setup和teardown操作的時候,可以用setUpClass、tearDownClass,注意哦:他們只是函數。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • @(python)[筆記] 目錄 前言 在python中,一切皆對象面向對象的程序設計的核心就是對象;面向對象的程...
    CaiGuangyin閱讀 604評論 0 5
  • 推薦書籍《煙霧彌漫你的眼:我在火葬場學到的生命哲學》 作者:凱特琳 ? 道蒂 其實并不一定要上升到哲學的高度去理解...
    銥星還活著閱讀 344評論 0 1
  • 道德激情? 當我給別人提起此類字眼或者表現的時候 ,十之八九被嗤之以鼻或者掩面而笑。 因為我是一個做企業的人。 這...
    萌雨閱讀 1,091評論 0 1
  • 首先恭喜獲獎的十位朋友,特別是我認識的賀建明和輸出倒逼輸入陶維英兩位007戰友。 由于這一個多月來一直堅持每天留言...
    超級賦能王張勝萍閱讀 165評論 0 7