簡體   English   中英

誰能解釋 OOP 的概念並更正此代碼

[英]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只是給第一個參數的常規名稱,但名稱可以是任何東西,例如selfthisbananaresult

因為您的decryptor()方法中沒有self參數,所以 Python 解釋器將嘗試將您提供的參數( result )解釋為self參數,這意味着它希望它是類型Encrypt ,但它不是,因此錯誤。

附帶說明一下,在面向對象的程序中,class 的名稱應該是名詞,方法名稱應該是動詞——因此在您的程序中,您將擁有一個名為“Encryptor”的 class 和名為“encrypt”的方法和“解密”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM