互相调用两个类的类函数

2024-09-29 23:15:40 发布

您现在位置:Python中文网/ 问答频道 /正文

在发布结果之前,我创建了两个类,它们会调用彼此的函数,但我很难让它正常工作。有什么原因可以让我调用上面第一个类的函数而不是下面一个类的函数吗?
节目如下:

import random

HAND = []
DECK = ['Ojama Red', 'Ojama Blue','Ojama Yellow','Ojama Green','Ojama Black', 'Ojama Pink', 'Ojama Lime']

class A:

    def func1(self):
        random.shuffle(DECK)
        B.func3()
    def func2(self):
        c = DECK[0]
        if c in DECK:
            HAND.append(c)
            DECK.remove(c) 

class B:
    def func3(self): # STANDBY
        self.func4()
    def func4(self): # DRAW
        A.func2()
        self.func5()
    def func5(self): # MAIN PHASE 1
        print('\n', HAND)
        print('\n', DECK)

start_game = A()
start_game.func1()

Tags: 函数selfdefrandomstartclassprintdeck
1条回答
网友
1楼 · 发布于 2024-09-29 23:15:40
import random

HAND = []
DECK = ['Ojama Red', 'Ojama Blue','Ojama Yellow','Ojama Green','Ojama Black', 'Ojama Pink', 'Ojama Lime']

class B:
    def func3(self):
        self.func4()
    def func4(self): # DRAW
        A.func2()
        self.func5()
    def func5(self): # MAIN PHASE 1
        print('\n', HAND)
        print('\n', DECK)

class A:
    def __init__(self):
        self.B = B()
    def func1(self, DECK):
        random.shuffle(DECK)
        self.B.func3()
    def func2(self):
        c = DECK[0]
        if c in DECK:
            HAND.append(c)
            DECK.remove(c) 



A = A()
A.func1(DECK)

这将给出如下输出

['Ojama Lime']

['Ojama Yellow', 'Ojama Black', 'Ojama Blue', 'Ojama Pink', 'Ojama Red', 'Ojama Green']
> 

相关问题 更多 >

    热门问题