python类属性定义_python – 有什么其他的方式来迭代一个自定义类的属性,不包括内建的类?...

有没有另一种方式来迭代只是没有内建的自定义类的属性(例如__dict__,__module__等)?例如,在这段代码中:

class Terrain:

WATER = -1

GRASS = 0

HILL = 1

MOUNTAIN = 2

我可以遍历所有这些属性,如下所示:

for key, value in Terrain.__dict__.items():

print("{: <11}".format(key), " --> ", value)

其输出:

MOUNTAIN --> 2

__module__ --> __main__

WATER --> -1

HILL --> 1

__dict__ -->

GRASS --> 0

__weakref__ -->

__doc__ --> None

如果我只想要整数参数(一个枚举类型的rudimentary version),我可以使用这个:

for key, value in Terrain.__dict__.items():

if type(value) is int: # type(value) == int

print("{: <11}".format(key), " --> ", value)

这给出了预期的结果:

MOUNTAIN --> 2

WATER --> -1

HILL --> 1

GRASS --> 0

是否可以仅遍历独立于类型的自定义类的非内置属性,例如,如果属性不是全部整数.大概我可以扩展条件包括更多的类型,但我想知道是否还有其他的方式我失踪.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值