[(k, v) for k, v in list(Terrain.__dict__.items()) if not (k.startswith('__') and
    k.endswith('__'))]
Are there any other ways to iterate through the attributes of a custom class, excluding the in-built ones?