2017-06-06 7 views
-1

bitte erklären, wo mein Fehler istKlasse Methode genau 2 Argument übernimmt (1 gegeben)

class SomeClass1(): 
    def func1(self,text): 
    ..... 
class SomeClass2(): 
    def func2(self): 
    a=SomeClass1.func1("string") 

einen Fehler ergibt: in func2 a = SomeClass1.func1 ("string"), nimmt func1 genau 2 Argument (1 gegeben)

+1

Sie übergeben die Instanz nicht: 'SomeClass1(). Func1 (" String ")' –

Antwort

0

Der Vollständigkeit halber ist hier eine Lösung, die die Funktion durch die Klasse aufruft und eine Instanz als Parameter übergibt.

class SomeClass2(): 
    def func2(self): 
    obj = SomeClass1() 
    a = SomeClass1.func1(obj, "string") # this will help you understand the meaning of `self` as parameters inside those functions. 
+0

Vielen Dank. Jetzt ist es klar –

+0

@AkopDjango Kein Problem. Wenn es half, erwägen Sie, es zu bewerten oder zu akzeptieren. :) –

2

Wenn Sie wollen es auf die gleiche Weise nennen, können Sie func1 wie diese in diesem Fall

class SomeClass1(): 
    @staticmethod 
    def func1(text): 
     print(text) 

ändern, ‚func1‘ wird eine statische Methode. Dies bedeutet, dass Sie keine Instanz zum Aufrufen erstellen müssen.

Verwandte Themen