Получение TypeError для тех методов, в которых я использовал self
в качестве параметра типа missing 1 required positional argument: 'self'
.Если метод имеет более 1 аргумента, включая self
, он показывает аналогичную ошибку пропуска другого позиционного аргумента.
Я начал с создания одноэлементного объекта, который проверяет свои собственные ссылки, чтобы сохранить его особенность.Для этого я использовал __new__
.
core.py
import pyglet.window
class Core(object):
def __new__(cls, *args, **kwargs):
if not cls:
cls = object.__new__(cls, *args, **kwargs)
return cls
def __init__(self):
self._instance = None
self._window = None
def __repr__(self):
return '<%s object at %s>' % (Core.__name__, hex(id(Core)))
def scene(self, width, height):
self._window = pyglet.window.Window(width=width, height=height)
script.py
from core import Core
c = Core()
print(c.__repr__())
c.scene(640, 480)
ошибки:
print(c.__repr__())
TypeError: __repr__() missing 1 required positional argument: 'self'
c.scene(640, 480)
TypeError: scene() missing 1 required positional argument: 'height'
Этот метод не единственный случай, поэтому я хочу понять, что происходит и как это исправить.Спасибо за ваше время.
Редактировать:
Это не проблема только с __repr__
.Я хочу, чтобы другие методы, такие как scene(self, width, height)
или любые методы, которые вы могли бы создать, имели self
в качестве одного параметра.Вторая ошибка, показывающая, какую ошибку дает этот код с другими методами
Мне нужен класс Core для создания одноэлементного объекта, чтобы я мог использовать другие файлы для ссылки на эту вещь Core._window
.Я думаю, что это отредактированное описание может уточнить, что я хотел раньше.Извините за удобство.