Python:无法搜索类实例变量列表

时间:2017-06-20 16:56:45

标签: list python-3.x class class-instance-variables

我正在尝试创建一个化学GUI,显示有关每个元素的各种信息。我使用类实例列表打印出信息,但我继续得到'list' object has no attribute 'atomic_number'。这是我设置的类,以及给我错误的代码。

class ElementInformation(object):
    def __init__(self, atomic_number, element_name, element_symbol, atomic_weight, melting_point, boiling_point)
        self.atomic_number = atomic_number
        self.element_name = element_name
        self.element_symbol = element_symbol
        self.atomic_weight = atomic_weight
        self.melting_point = melting_point
        self.boiling_point = boiling_point

def find_element():
    update_status_label(element_information, text_entry)  
    # text entry is a text entry field in TKinter
    # other code in here as well (not part of my question


def update_status_label(element_instances, text_input):

    for text_box in element_instances.atomic_number:
        if text_input not in text_box:
            # do stuff
        else:
            pass

element_result_list = [*results parsed from webpage here*]
row_index = 0
while row_index < len(element_result_list):
    element_instances.append(ElementInformation(atomic_number, element_name, element_symbol, atomic_weight, melting_point, boiling_point))
    # the above information is changed to provide me the correct information, it is just dummy code here
    row_index += 1

我的问题出在函数update_status label中,特别是for循环。 Python正在抛出一个错误(就像我之前说过的那样)'list' object has no attribute 'atomic_number'。对于我的生活,我似乎无法弄清楚出了什么问题。谢谢你的帮助!

如果它有所不同,我在Windows上使用Python 3.x

1 个答案:

答案 0 :(得分:1)

请改为尝试:

for element in element_instances:
    text_box = element.atomic_number:
    if text_input not in text_box:
        # do stuff
    else:
        pass

列表&#34; element_instances&#34;是一个Python列表。它没有属性&#34; .atomic number&#34;即使其中的所有元素都具有这样的属性。 Python的for语句将列表的每个元素分配给一个变量 - 该元素是您自定义类的一个实例,您可以在其中摆弄您的属性。