搜尋

首頁  >  問答  >  主體

python类出错 NameError: name 'self' is not defined

class Animal:
    def __init__(self, animal):
        self.animal = animal

    def type(self, type=self.animal):
        print type

运行的时候出现 NameError: name 'self' is not defined?

ringa_leeringa_lee2824 天前1059

全部回覆(2)我來回復

  • 天蓬老师

    天蓬老师2017-04-17 11:13:27

    方法參數的默認值是在函數定義的時候初始化的,而self指該class的實例化類,隻有實例化之後才有值,因此這裏編譯出錯(不是運行時錯誤)

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-17 11:13:27

    如果打印的默認值非要設為self.animal的話,試試這樣:

     class Animal(object):
         def __init__(self,animal):
             self.animal = animal
         def type(self,type=None):
             print type if type else self.animal

    你還需要了解一下self,在類中哪裏可以訪問得到self,哪裏不可以!

    回覆
    0
  • 取消回覆