相关疑难解决方法(0)

如何从初始化参数中正确设置 Python 类属性

作为一名 Python 程序员,我经常声明类似的类

class Foo:
  def __init__(self, attr1, attr2, attr3, attr4, attr5, attr6, attr7, attr8, attr9):
    self.attr1 = attr1
    self.attr2 = attr2
    ...
    self.attr9 = attr9

    # init your class
Run Code Online (Sandbox Code Playgroud)

问题是我一遍又一遍地这样做,感觉效率很低。在 C++ 中,执行此操作的方法是

class Foo {
  public:
    Foo(int, int, int, int, int);
    
  private:
    int attr1, attr2, attr3, attr4, attr5;
    
};

Foo::Foo(int attr1, int attr2, int attr3, int attr4, int attr5) : 
    attr1(attr1), attr2(attr2), attr3(attr3), attr4(attr4), attr5(attr5) {
    // init your class
}
Run Code Online (Sandbox Code Playgroud)

我觉得它的效率稍微高一些。我的问题是:是否有一种标准方法可以避免必须将每个参数的参数归因于该类?我可以想出一些方法来编程它,例如

def attribute_setter(*arg_names):
  def wrapper(func):
    def setter_init(self, *args, …
Run Code Online (Sandbox Code Playgroud)

python readability python-decorators

4
推荐指数
1
解决办法
2830
查看次数

标签 统计

python ×1

python-decorators ×1

readability ×1