TypeError: object() takes no parameters

Boa noite galera!

Tô aprendendo pytjon3 e quero criar um jogo, como não tenho muita ideia de como fazer isso, to vendo um passo a passo no ytb de como criar um jogo simplesinho mesmo, só pra ir pegando como se faz, porém, apesar de o código estar idêntico ao da pessoa que fez ele no ytb, tá dando o seguinte erro:

TypeError: object() takes no parameters

segue o código:

from tkinter import *
import random
import time

tk = Tk()
tk.title('Ball')

tk.resizable(0, 0)
tk.wm_attributes('-topmost', 1)
canvas = Canvas(tk, width = 400, height = 400, highlightthickness = 0)
canvas.pack()
tk.update()

class ball:
def _init_(self, canvas, color):
    self.canvas = canvas
    self.id = canvas.create_oval(10, 10, 25, 25, fill = color)
    self.canvas.move(self.id, 254, 100)


Ball = ball(canvas, 'yellow')`

Olhando seu código, uma coisa que vejo errada é a definiçao do construtor. O método tem que ser chamado __init__ e nao apenas init.

Tente mudar isso e veja o que acontece.

1 curtida

botei'_init_' e continua dando o mesmo erro.

__init__ são dois underlines

Bem, agora não aparece nenhum erro, mas também não abre nenhuma janela

Na verdade, ela está abrindo sim senhora!

Mas ela abre e fecha rapidamente, pois você não chamou o método .mainloop(), sem esse método sua janela apenas abre e fecha (rapidamente), ou seja, este é o método que segura sua janela aberta até que o usuário feche a mesma.

Adicione o código abaixo no final do seu código e problema resolvido.

tk.mainloop() 

Abraços!

1 curtida

Obrigada!

De nada!
Se seu problema foi solucionado, põe a tag [RESOLVIDO] e marca a solução :tada:.

Abraços!

1 curtida

from tkinter import *

import random

import time

tk = Tk()

tk.title(‘Ball’)

tk.resizable(0, 0)

tk.wm_attributes(’-topmost’, 1)

canvas = Canvas(tk, width = 400, height = 400, highlightthickness = 0)

canvas.pack()

tk.update()

class ball:

def __init__(self, canvas, color):

    self.canvas = canvas

    self.id = canvas.create_oval(10, 10, 25, 25, fill = color)

    self.canvas.move(self.id, 254, 100)

Ball = ball(canvas, ‘yellow’)

mainloop()