25

今日はpythonを勉強したばかりなので、素朴に再帰に関するコードを書こうと思っています。では、Python で次のことを実現するにはどうすればよいでしょうか。

class mine:
    def inclass(self):
        self = mine();
    def recur(num):
        print(num, end="")
        if num > 1:
            print(" * ",end="")
            return num * self.recur(num-1)
        print(" =")
        return 1

def main():
    a = mine()
    print(mine.recur(10))

main()

自己を定義しようとしましたが、そうする方法が思いつきませんでした。助言がありますか?どうもありがとうございました。


はい、次の作業、ありがとう。

class mine:
    def recur(self, num):
        print(num, end="")
        if num > 1:
            print(" * ",end="")
            return num * self.recur(self, num-1)
        print(" =")
        return 1

def main():
    a = mine()
    print(mine.recur(mine, 10))

main()
4

3 に答える 3

22

クラスの各メソッドはself、最初のパラメーターとして持つ必要があります。つまり、次のようにします。

def recur(self, num):

今すぐ動作するはずです。

基本的に舞台裏で起こるのはあなたがするときです

instance.method(arg1, arg2, arg3, ...)

Python は

Class.method(instance, arg1, arg2, arg3, ....)
于 2013-07-24T20:04:51.350 に答える
-1

これは実際に動作するコード例です

class Card():
    def __init__(self,cardsPlayedList,cardPosition):
        self.cardsPlayedList = cardsPlayedList
        self.cardPosition = cardPosition
    #    self.cardPosition

    def getNewCard(self,cardPosition):
        cardNum = 0
        cardInList = False
        
        cardNum = random.randint(1,len(cardList)-1)          # Get random card from List - 1 to 52 
        for x in self.cardsPlayedList:
            if(cardNum == x):
                cardInList = True                            

        if(cardInList == False):
            self.cardsPlayedList.insert(self.cardPosition, cardNum)    # if card not already played then store in list
            return cardNum
        else:
            return self.getNewCard(cardPosition)   
于 2020-11-29T16:43:43.890 に答える