[英]Can anybody explain concepts of OOP and correct this code
所以我在 python 中編寫這個非常簡單的加密器和解密器。我理解它的程序方式,但我想制作一個 class。 這是代碼
class Encrypt():
def __init__(self,scentence):
self.scentence = scentence
def encryptor(self):
result = []
for letter in self.scentence:
l = ord(letter)+20
result.append(l)
for numbers in result:
print(numbers,end = '')
print(" " , end = '')
print(result)
def decryptor(result):
print(result)
end_string = ""
for j in result:
l = int(j)
l = l-20
l = chr(l)
end_string = end_string + l
print("The decrypted message is below:")
print(end_string)
f = Encrypt("helloe")
f.encryptor()
f.decryptor()
因此,當我運行此代碼時,會出現如下錯誤
對於 j 結果:TypeError: 'Encrypt' object is not iterable
有人解釋SELF和OBJECT和CLASS的概念會很有幫助
In Python, the first parameter for class methods is always self
(whereas in other object-oriented languages like C++ and Java this parameter is implicit). 有關原因的解釋,請參閱https://stackoverflow.com/a/2709832/4454124 。 ( self
只是給第一個參數的常規名稱,但名稱可以是任何東西,例如self
、 this
、 banana
或result
)
因為您的decryptor()
方法中沒有self
參數,所以 Python 解釋器將嘗試將您提供的參數( result
)解釋為self
參數,這意味着它希望它是類型Encrypt
,但它不是,因此錯誤。
附帶說明一下,在面向對象的程序中,class 的名稱應該是名詞,方法名稱應該是動詞——因此在您的程序中,您將擁有一個名為“Encryptor”的 class 和名為“encrypt”的方法和“解密”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.