簡體   English   中英

斷言錯誤,類型對象“學生”沒有屬性“姓名”

[英]Assertion Error, type object 'Student' has no attribute 'name'

我正在為一個類編碼,但出現以下斷言錯誤:類型對象“學生”沒有屬性“名稱”

這些斷言需要經過:

assert isinstance(getattr(Student, "name"), property)
assert isinstance(getattr(Student, "imt_name"), property)
assert isinstance(getattr(Student, "semester"), property)

我不明白為什么,因為我知道屬性名稱、imt_name 和學期應該是實例的一部分,而不是類的屬性。

class Student():
    """ ein Student """

    def __init__ (self, name, imt_name, semester):
        self.name = name
        self.imt_name = imt_name
        self.semester = semester

    def __str__(self):
        return "{} {} in Semester {}".format(self.name, self.imt_name, self.semester)

教授會不會搞錯了? 或者有什么我不完全理解的東西?

您只需回答您的問題:

屬性名稱、imt_name 和學期應該是實例的一部分,而不是類的屬性

__init__方法從未被調用過,請嘗試:

john = Student('john', 'smith', 2)
assert hasattr(john, "name")
assert isinstance(getattr(john, "name"), str)

第一個斷言是檢查實例是否有一個屬性,第二個斷言是檢查它的類型。

您可以使用hasattr函數檢查給定類的實例是否具有給定屬性:

    john = Student("A", "b", "c")
    assert hasattr(john, "name")

暫無
暫無

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

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