错误消息…对象找不到属性

选择 | 换行 | 行号
  1. class Encrypt(object):
  2.  #The worst object ever created
  3.     def __init__(self,alphabet):
  4.         self.alphabet = alphabet
  5.         self.trans = self.maketrans()
  6.         self.count = -1
  7.         self.translist = []
  8.  
  9.     def maketrans(self):
  10.         x = (random.randrange(0,len(self.alphabet)))
  11.         if(self.count == len(self.alphabet)):
  12.             return(self.translist)
  13.         elif(x in self.translist):
  14.             x = input("enter a number, bitch")
  15.             self.count += 1
  16.             self.translist.append(x)
  17.             return(maketrans(self))
  18.         else:
  19.             self.count += 1
  20.             self.translist.append(x)
  21.             return(maketrans(self))
  22.  
  23. alphabet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
  24. encrypt1 = Encrypt(alphabet)
  25. print(encrypt.trans)

我得到了这个错误
回溯(最近一次呼叫):
文件"C:\USERS\iStrawser\UD\CisC 106\Pythons\Lab7.py",第76行,
ENCRYPT1=加密(字母)
文件"C:\USERS\iStrawser\UD\CisC 106\Pythons\Lab7.py",第56行,位于__init__
Self.tran=self.maketrans()
Maketrans中的文件"C:\USERS\iStrawser\UD\CisC 106\Pythons\Lab7.py",第62行
Self.count+=1
AttributeError:'Encrypt'对象没有'count'属性
为什么我无法获得对字母表进行编码的数字列表?我不确定我知道如何在类中创建递归函数。

# 回答1


这意味着它不是类的成员,这通常是一个缩进问题,但没有办法判断,因为您没有点击code标记(回复框顶部的#),并将代码发布在[code]和[/code]标记之间。
在这里,您不会使用递归,而是使用循环
对于字母表中的字母:
再看一遍这个问题,把它说得更清楚。
# 回答2


#

选择 | 换行 | 行号
  1. class Encrypt(object):
  2.  #The worst object ever created
  3.     def __init__(self,alphabet):
  4.         self.alphabet = alphabet
  5.         self.trans = self.maketrans()
  6.  
  7.     def maketrans(self,x,translist):
  8.         r = (random.randrange(0,len(self.alphabet)))
  9.         if(x == len(self.alphabet)):
  10.             return(translist)
  11.         elif(r in translist):
  12.             r = input("enter a number, bitch")
  13.             translist.append(x)
  14.             return(self.maketrans(self,x + 1,translist))
  15.         else:
  16.             self.translist.append(x)
  17.             return(maketrans(self,x + 1,translist))
  18.  
  19. alphabet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
  20. encrypt1 = Encrypt(alphabet,0,[])
  21. print(encrypt1.maketrans)
  22.  
# 回答3


我的错误是,self.count是在调用self.maketrans()之后声明的,它使用self.count,所以只需在__init__中颠倒这两个语句。

选择 | 换行 | 行号
  1.         self.trans = self.maketrans()
  2.         self.count = -1

哦,好吧,你至少学会了如何使用代码标签。

# 回答4


我看到了更多的问题:
要调用方法maketrans,请执行以下操作:
Self.maketrans(x,代码转换列表)
Encrypt._init__()中的参数数量与调用不匹配
ENCRYPT1=加密(字母表,0,[])
"Encrypt"对象没有属性"TransList"

标签: python

添加新评论