首页 > 解决方案 > 如何使用类列表作为函数参数?

问题描述

在使用 C# 几年后,我正在学习 python(3)。因此,我正在用 python 编写一些家庭项目,但我遇到了一些我似乎无法弄清楚如何在 python 中执行的问题。

可以说我有一个像这样的简单类:

class SomeItem:
    def __init__(self, var1, var2, var3):
        # Instance Variable
        self.var1= var1
        self.var2= var2
        self.var3 = var3

在我的代码中的某个时刻,我正在使用这个类将一堆它们放在一个列表中;

list_of_SomeItems = []
list_of_SomeItems.append(SomeItem("apple","banana", "pear"))
list_of_SomeItems.append(SomeItem("fruit","candy", "drinks"))
# so on and so forth
return list_of_SomeItems

但是现在出现了我似乎无法弄清楚的部分在某个时候,我想创建一个函数来获取这些列表SomeItems并对其进行处理。

def name_of_function(interval=1.0, someItemsList):
    for item in someItemsList:
        print(item.var1)

但很明显,此时它不知道item有一个 var1,因为我没有告诉函数列表必须是SomeItem对象。

在我的函数中声明列表并将该参数与类关联的正确方法是什么?

编辑 固定;正如@chepner 和@Perfect 提到的,错误是可选参数被放在第一位(普通语法错误);修复该错误后;它按预期工作。

标签: pythonlistclass

解决方案


修复语法错误后,代码将按原样工作。

Python是动态类型的,你可以试试foo.bar,如果foo有这个bar属性它会成功,如果没有,它只会引发一个AttributeError你可以抓住except并继续前进的方法。


推荐阅读