基于Python中的其他对象属性创建类的对象

2024-09-30 04:26:31 发布

您现在位置:Python中文网/ 问答频道 /正文

创建一个使用Python中另一类类型的现有对象的属性的新对象的最佳实践是什么

假设我有一个类MvsClass的对象MvsObject,我想创建一个不同类的新对象,它使用属性densePointCloudssparsePointClouds并用类PointCloud的方法处理它们

以下方法在Python中是否是“良好实践”

class PointCloud:    

    def __init__(self, MvsObject):
        self.densePointClouds           = MvsObject.densePointClouds
        self.sparsePointClouds          = MvsObject.sparsePointClouds

Tags: 对象方法self类型属性initdefclass
1条回答
网友
1楼 · 发布于 2024-09-30 04:26:31

你的解决方案很好。您还可以使用^{}decorator来定义构建类的两种方法(以“经典”方式,或使用另一个实例)

class PointCloud:    

    def __init__(self, dense_points_cloud, sparse_points_cloud):
        self.dense_points_cloud = dense_points_cloud
        self.sparse_points_cloud = sparse_points_cloud

    @classmethod
    def from_mvs_object(cls, mvs_object):
        return cls(mvs_object.dense_points_cloud, mvs_object.sparse_points_cloud)

您可以这样实例化它:

point = PointCloud.from_mvs_object(mvs_object)

注意,我还重命名了属性,因为使用Python时,最好使用snake case来命名变量

相关问题 更多 >

    热门问题