Рубрики
Без рубрики

Python TypeError: Метод () принимает 0 позиционных аргументов, но 1 был дан

Автор оригинала: Python Examples.

TypeError: метод () занимает 0 позиционных аргументов, но 1 был дан

Ошибка говорит, что согласно определению метода, оно не принимает аргументов, но мы предоставили аргумент.

Воссоздать типограф Python

Примерное определение класса, которое может воссоздать эту ошибку приведено ниже.

Python Program

class Laptop:
	def details():
		print('Hello! I am a laptop.')

laptop1 = Laptop()
laptop1.details()

Выход

Traceback (most recent call last):
  File "example1.py", line 6, in 
    laptop1.details()
TypeError: details() takes 0 positional arguments but 1 was given

Вам может быть интересно, что вы не пропустили аргументы, когда вы звонили Детали () Метод на Ноутбук1 объект. Но почему Python бросает в систему?

Вот почему. По умолчанию, если метод не является статическим методом Python, то Неявно, объект (я) передается как аргумент Отказ Итак, когда вы называли ноутбук1.Details (), он на самом деле называется ноутбуком1.details (ноутбук1).

Решение для JypeError

И выполнять это встроенное поведение, нам нужно предоставить аргумент в определении метода деталей (), как показано ниже:

Python Program

class Laptop:
	def details(self):
		print('Hello! I am a laptop.')

laptop1 = Laptop()
laptop1.details()

Выход

Hello! I am a laptop.

Кроме того, есть другой способ, если метод должен быть статическим методом. Вы можете сказать Python Transter, что этот метод является статическим методом, использующим @staticmethod как показано ниже.

Python Program

class Laptop:
	@staticmethod
	def details():
		print('Hello! I am a laptop.')

laptop1 = Laptop()
laptop1.details()

Выход

Hello! I am a laptop.

Резюме

В этом руководстве примеров Python мы научились решить тип «Метод ()», использует 0 позиционных аргументов, но 1 был дан, с помощью примеров программ.