在Python中强制执行foreach循环类型?

时间:2018-02-12 19:54:55

标签: python

我对Python很陌生,但我确实拥有计算机科学学位,所以这只是学习这种语言的怪癖。

获得以下功能:

user

当我在PyCharm中写作时,我当然希望使用代码完整性和其他智能感知功能。但是当我在该函数中执行for循环时,我无法弄清楚如何强制@staticmethod def count_class_instance_based_on_attribute_value(data, attribute, attribute_value, classification): count = 0 for val in data: if val.get_attribute_value(attribute) == attribute_value: if val.m_Class == classification: count = count + 1 return count 应该是我创建的特定类型(或类),因此我可以确定val函数可以实际上是在第一时间被召唤。

现在的情况是,我可以祈祷并希望。

有什么方法吗?

2 个答案:

答案 0 :(得分:1)

您可以查看hasattr(val, 'get_attribute_value')或查看最终AttributeError,如下:

count = 0
for val in data:
    try:
        if val.get_attribute_value(attribute) == attribute_value:
            if val.m_Class == classification:
                count = count + 1
    except AttributeError:
        continue

非常pythonic。

但是,如果您使用的是非常特殊的自定义课程,您还可以使用val检查您的isintance(val, YourClass)是否是您班级的实例。

答案 1 :(得分:1)

如果我理解正确的话,

if type(val) is [your_custom_type_or_class]:

是如何检查条件中的类型,显然[your_custom_type_or_class]是您正在寻找的实际类型。就像:

if type(val) is str:

将检查字符串。