第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

TypeError:method()接受一個位置參數(shù),但給出了2個

TypeError:method()接受一個位置參數(shù),但給出了2個

慕勒3428872 2019-08-03 03:03:05
TypeError:method()接受一個位置參數(shù),但給出了2個如果我有課.。class MyClass:     def method(arg):         print(arg)..我用它來創(chuàng)建一個對象.。my_object = MyClass()..我打電話給你method("foo")就像這樣.。>>> my_object.method("foo")Traceback (most recent call last):File "<stdin>", line 1, in <module>TypeError:  method() takes exactly 1 positional argument (2 given)..為什么Python告訴我給了它兩個論點,而我只給了一個呢?
查看完整描述

3 回答

?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

在Python中,這是:

my_object.method("foo")

..是句法糖,翻譯在幕后將其翻譯為:

MyClass.method(my_object, "foo")

..正如您所看到的,它確實有兩個參數(shù)-從調用方的角度來看,第一個參數(shù)是隱式的。

這是因為大多數(shù)方法都對調用的對象做了一些工作,因此需要有某種方法來在方法中引用該對象。按照慣例,第一個參數(shù)稱為self在方法定義中:

class MyNewClass:

    def method(self, arg):
        print(self)
        print(arg)

如果你打電話method("foo")關于…的一個例子MyNewClass,如預期的那樣運作:

>>> my_new_object = MyNewClass()>>> my_new_object.method("foo")<__main__.MyNewClass object at 0x29045d0>foo

偶爾(但不經常),你真的關心方法綁定到的對象,在這種情況下,您可以裝飾內建法staticmethod()職能是這樣說的:

class MyOtherClass:

    @staticmethod
    def method(arg):
        print(arg)

..在這種情況下,不需要添加self方法定義的參數(shù),它仍然有效:

>>> my_other_object = MyOtherClass()>>> my_other_object.method("foo")
foo



查看完整回答
反對 回復 2019-08-04
  • 3 回答
  • 0 關注
  • 544 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號