Получаю ошибку Ball takes no arguments- Tkinter

Killdoz

Новичок
Пользователь
Апр 26, 2020
11
0
1
Python:
from tkinter import *
import random
import time

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, 245, 100)

        def draw(self):
            self.canvas.move(self.id, 0, -1)

tk = Tk()
tk.title("game")
tk.resizable(0, 0)
tk.wm_attributes("-topmost" , 1)
canvas = Canvas(tk, width=500, height=400, bd=0, highlightthickness=0)
canvas.pack()
tk.update()

ball = Ball(canvas, 'red')

while 1:
    tk.update_idletasks()
    tk.update()
    time.sleep(0.01)
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Замените эту строку кода:
Python:
def _init_(self, canvas, color):
на такую
Python:
def __init__(self, canvas, color):
 
  • Мне нравится
Реакции: Student

Student

throw exception
Команда форума
Администратор
Апр 2, 2020
195
103
43
Москва
Выложите полное сообщение об ошибке.
 

Killdoz

Новичок
Пользователь
Апр 26, 2020
11
0
1
Замените эту строку кода:
Python:
def _init_(self, canvas, color):
на такую
Python:
def __init__(self, canvas, color):
спасибо, помогло
 

it__loh

Новичок
Пользователь
Июн 9, 2020
2
0
1
Замените эту строку кода:
Python:
def _init_(self, canvas, color):
на такую
Python:
def __init__(self, canvas, color):

Искал наверно 3 часа в интернете в чём моя ошибка. И тут я нашёл это и добавил по одному нижнему подчёркиванию в название этой функции !!! Всё заработало !!! В учебнике ни хрена не написано про то, что там два нижних подчёркивания !!! Пожалуйста, объясните, почему там вообще 2 нижних подчёркивания ?
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Искал наверно 3 часа в интернете в чём моя ошибка. И тут я нашёл это и добавил по одному нижнему подчёркиванию в название этой функции !!! Всё заработало !!! В учебнике ни хрена не написано про то, что там два нижних подчёркивания !!! Пожалуйста, объясните, почему там вообще 2 нижних подчёркивания ?
Все "магические методы" в питоне (в том числе и метод __init__()) начинаются с двух нижних подчеркиваний и заканчиваются двумя нижними подчеркиваниями. Вот видео про магические методы: ссылка
 
  • Мне нравится
Реакции: it__loh

Форум IT Специалистов