Пользовательская функция выдает исключение - PullRequest
0 голосов
/ 20 апреля 2020

Так что в последнее время я работаю со списками и пытаюсь заставить работать специальный класс, поэтому я написал для l oop функцию для проверки функции basi c, но она просто дает мне эту трассировку :

Traceback (most recent call last):
  File "C:\Users\User\Desktop\nice code\v2.py", line 13, in <module>
    if Lenlist == len.lenList(len.listLen(List=len.list(list=List().list()))): print(Lenlist);
  File "C:\Users\User\Desktop\nice code\v2.py", line 3, in lenList
    def lenList(self, list=list): return len(list);
TypeError: 'List' object is not callable

Вот источник для вас:

class List:
  List = list('list');
  def lenList(self, list=list): return len(list);
  def listLen(self, List=len): return list(List);
  def lenlist(self, len=list): return self.lenList(list=len);
  def list(self, list=list): return self.List;
  def listlen(self, len=len): return self.list(list=len);
len = List();
Lenlist = 0;
for Len in len.listLen(List=len.list(list=List().list())):
  if Len in list(len.listLen(List=len.list(list=Len))):
    Lenlist += list(len.listLen(List=len.list(list=Len))).count(Len);
    if Lenlist == len.lenList(len.listLen(List=len.list(list=List().list()))): print(Lenlist);

Я ожидал, что он напечатает длину List.List. Я уже пытался заменить все позиционные аргументы ключевыми словами.

1 Ответ

0 голосов
/ 20 апреля 2020

здесь есть несколько ключевых примечаний, которым нужно следовать

  1. Всегда старайтесь избегать перезаписи python ключевых слов или предопределенных функций (например, len)

  2. Не иметь имен переменных внутри класса, имя которых совпадает с именем класса

Первая проблема, которую я вижу, состоит в том, что вы перезаписали len в lenList, который вы выиграли; t получить желаемый вывод 2-я проблема, которую я обнаружил в вашем коде, это то, что функция lenList пытается вернуть список len (list) - это предопределенный класс python, поэтому len не сможет найти ничего

I немного изменили ваш код, который теперь печатает 4

class List:
  List1 = list('list');
  def lenList(self, list=list): return len(self.List1);
  def listLen(self, List=len): return list(self.List1);
  def lenlist(self, len=list): return self.lenList(list=len);
  def list(self, list=list): return self.List1;
  def listlen(self, len=len): return self.list(list=len);
len1 = List();
Lenlist = 0;

for Len in len1.listLen(List=len1.list(list=List().list())):
  if Len in list(len1.listLen(List=len1.list(list=Len))):
    Lenlist += list(len1.listLen(List=len1.list(list=Len))).count(Len);
    if Lenlist == len1.lenList(len1.listLen(List=len1.list(list=List().list()))): print(Lenlist);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...