将字典内容与Object进行比较

OHL*_*ÁLÁ 3 python dictionary object

我有以下对象

class LidarPropertiesField(object):
    osversion = ''
    lidarname = ''
    lat = 0.0
    longit = 0.0
    alt = 0.0
    pitch = 0.0
    yaw = 0.0
    roll = 0.0
    home_el = 0.0
    home_az = 0.0
    gps = 0
    vad = 0
    ppi = 0
    rhi = 0
    flex_traj = 0
    focuse = 0
    type = 0
    range_no = 0
    hard_target = 0
    dbid = 0
Run Code Online (Sandbox Code Playgroud)

另外我有一个字段相同的字典,是否可以将对象字段与for循环中的字典字段进行比较?

Fre*_*Foo 5

假设dict被调用d,这将检查是否LidarPropertiesField具有与d以下所有键相同的值d:

for k, v in d.iteritems():
     if getattr(LidarPropertiesField, k) != v:
         # difference found; note, an exception will be raised
         # if LidarPropertiesField has no attribute k
Run Code Online (Sandbox Code Playgroud)

或者,您可以将类转换为dict类似的类

dict((k, v) for k, v in LidarPropertiesField.__dict__.iteritems()
            if not k.startswith('_'))
Run Code Online (Sandbox Code Playgroud)

并与之比较==.

注意跳过与启动所有类属性_来避免__doc__,__dict__,__module____weakref__.