我对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
函数可以实际上是在第一时间被召唤。
现在的情况是,我可以祈祷并希望。
有什么方法吗?
答案 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:
将检查字符串。