Есть ли какой-либо способ для меня повторить этот класс из любого места в коде?

#python #class #random #pgzero

#python #класс #Случайный #pgzero

Вопрос:

Я хочу иметь возможность перетасовывать / повторно рандомизировать числа, которые являются выходными данными. Есть ли какой-либо способ сделать это из любого места в коде? Вот класс, на который я ссылаюсь:

 class Foe(Actor): #v constructor v
    def __init__(self, image):
        super().__init__(image)
        self.rotation = random.uniform(-2.5, 2.5)
        firside = random.randint(1, 8) #picks a random number between 1 and 8 (starting point)
        secside = random.randint(1, 8) #"------------------------------------" (ending point)
        while firside == secside or secside == firside   1 or secside == firside - 1 or firside == 8 and secside == 1 or firside == 1 and secside == 8: #keeps randomizing the secside variable till its not the same as the firside or not a number close to it
            secside = random.randint(1, 8)

        if firside == 1: #the starting point is in the top right of the screen (top right till top middle) and this code picks a random position between these point
            self.fx = random.randint(0, 425)
            self.fy = -40
        if secside == 1: #the ending point is in the top right of the screen (top right till top middle) and this code picks a random position between these point
            self.dx = random.randint(0, 425)
            self.dy = -40
        if firside == 2: #north left
            self.fx = random.randint(426, 850)
            self.fy = -40
        if secside == 2:
            self.dx = random.randint(426, 850)
            self.dy = -40
        if firside == 3:  #west right
            self.fx = 880
            self.fy = random.randint(0, 212)
        if secside == 3:
            self.dx = 880
            self.dy = random.randint(0, 212)
        if firside == 4:  #west left
            self.fx = 880
            self.fy = random.randint(213, 425)
        if secside == 4:
            self.dx = 880
            self.dy = random.randint(213, 425)
        if firside == 5:   #south right
            self.fx = random.randint(0, 425)
            self.fy = 465
        if secside == 5:
            self.dx = random.randint(0, 425)
            self.dy = 465
        if firside == 6:   #south left
            self.fx = random.randint(426, 850)
            self.fy = 465
        if secside == 6:
            self.dx = random.randint(426, 850)
            self.dy = 465
        if firside == 7:   #east right
            self.fx = -40
            self.fy = random.randint(0, 212)
        if secside == 7:
            self.dx = -40
            self.dy = random.randint(0, 212)
        if firside == 8:   #east left
            self.fx = -40
            self.fy = random.randint(213, 425)
        if secside == 8:
            self.dx = -40
            self.dy = random.randint(213, 425)
        

    
    if main_menu == False:
        foeResetter()
 

(код выбирает случайную позицию для появления противника и случайную позицию для позиции назначения противника)
Заранее спасибо за любую помощь, которую вы предоставляете 🙂

Комментарии:

1. Что вы подразумеваете под «повторением этого класса»? Вы можете создать столько экземпляров класса, сколько захотите. Прочитайте об объектах экземпляра и классе .

2. Я хочу иметь возможность повторно рандомизировать переменные внутри класса. Как бы я это сделал?

3. Каждый раз, когда вы создаете новый экземпляр, атрибуты экземпляра получают новые случайные значения.