如何为一个类编写通用的get方法?

辣椒

最近,我开始在python中使用oop。我想为初始化的属性编写一个通用的get或set方法。例如,存在具有几个属性的Song类和一个对应的get方法。我想避免使用多个if语句。仅具有两个属性就没有关系,但是如果> 5个属性,则代码将难以阅读。是否可以在args中使用字符串来从init中获取值,而无需定义所有可能的情况?

class Song(object):

    def __init__(self,title,prod):
        self.title = title
        self.prod = prod

    def getParam(self,*args):
        retPar = dict()
        if 'title' in args: 
            print(self.title)
            retPar['title'] = self.title
        if 'prod' in args:
            print(self.prod)
            retPar['prod'] = self.prod
        return(retPar)

我不确定(如果可以),因为我什么也找不到。我怎样才能做到这一点?

为不熟悉python语法的同事提供功能,这样他们不必直接访问attritube。对于绘图之类的东西

因为不一定要教python并且dot语法对在matlab中具有基本知识的人造成混淆

我认为这很容易教,您不应该为那么简单的事情而弯腰……但是假设这确实是您想要的,这看起来是个更好的主意:

class Song(object):
    def __init__(self, title, prod):
        self.title = title
        self.prod = prod
    
    def __getitem__(self, key):
        return getattr(self, key)

song = Song('Foo', 'Bar')
print song['title']

请参阅https://docs.python.org/2/reference/datamodel.html#object.__getitem__https://docs.python.org/2/library/functions.html#getattr

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何为多个类创建一个通用的JpaRepository?

编写一个非常通用的方法

如何为所有实体编写一个简单的通用核心数据函数

编写一个用于解码通用JSON的函数。如何为Codable.Protocol给出参数?

如何为包含另一个类的类编写构造函数?

如何为一个类中的私有变量定义一个“好的” get()方法?

如何为 Scala 中的任何集合创建一个通用的隐式类?

如何为不同的类编写一个接口实现?

如何在Ruby中编写一个方法(通用方法)

如何编写一个通用的isEmpty方法来检查null,empty?

如何编写一个通用的指针类型的函数?

如何为scala中只有一个字段的案例类编写对称的Play Json格式器?

如何在Java中编写一个采用两个相同类型参数的通用方法?

如何从另一个类调用get方法?

c#如何从另一个类中的通用扩展方法调用Action

如何为通用类State <T扩展Mixin编写StatenWidget>

创建一个包含通用方法的“ Core”类

如何为类中的一个方法设置初始值

如何为一个类定义多个equals()函数

如何为类创建一个工具

如何为特定的类编写hashCode方法?

如何为类编写“获取”方法模板

如何编写一个生成器类?

如何编写一个抽象的主类

如何为json字符串编写通用的getObject()方法?

如何为一个 ID 下的所有文本输入添加一个类?

如何建立一个类方法?

创建一个通用类列表

如何编写一个接受类类型作为参数的方法,并使用它来投射一些对象