自定义函数引发异常

2024-06-28 19:33:35 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我最近一直在处理列表,我试图让一个特殊的类工作,所以我写了一个for循环来测试基本函数,但它只是给了我这个回溯:

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);

我所期望的是它打印列表的长度。我已经尝试用关键字替换所有位置参数


Tags: inself列表forlenreturnifdef
1条回答
网友
1楼 · 发布于 2024-06-28 19:33:35

这里有一些您需要遵循的关键注意事项

  1. 始终避免覆盖python关键字或预定义函数(例如:len)

  2. 不要在与类名同名的类中使用变量名

我看到的第一个问题是,您已经覆盖了您赢得的lenList中的len;我得不到你想要的结果 我在代码中发现的第二个问题是lenList函数试图返回len(list) list是python预定义的类,因此len无法找到任何内容

我对你的代码做了一些修改,现在可以打印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);

相关问题 更多 >