相关疑难解决方法(0)

将类变量指定为类方法参数的默认值

我想在类中构建一个方法,其中包含从此类中获取的默认值参数.一般来说,我会过滤一些数据.在我的班级里面,我有一个方法,通常我传递数据向量.有时我没有矢量,我采用模拟数据.每次我没有传递特定的矢量时,我都希望默认采用模拟数据.我认为它应该是一个简单的构造,我在我的方法定义中说a=self.vector.但由于某种原因,我有一个错误NameError: name 'self' is not defined.简化的结构是:

class baseClass(object):  # This class takes an initial data or simulation
    def __init__(self):
        self.x = 1
        self.y = 2

class extendedClass(baseClass): # This class does some filtering
    def __init__(self):
        baseClass.__init__(self)
        self.z = 5
    def doSomething(self, a=self.z):
        self.z = 3
        self.b = a

if __name__ == '__main__':
    a = extendedClass()
    print a.__dict__
    a.doSomething()
    print a.__dict__
Run Code Online (Sandbox Code Playgroud)

我预期的输出应该是:

{'y': 2, 'x': 1, 'z': 5}
{'y': 2, 'x': 1, 'z': 3, 'b': 5}
Run Code Online (Sandbox Code Playgroud)

我试过默认分配,因为 …

python class variable-assignment

46
推荐指数
3
解决办法
2万
查看次数

非静态成员作为非静态成员函数的默认参数

struct X
{
   X():mem(42){}
   void f(int param = mem) //ERROR
   {
      //do something
   }
private: 
   int mem;
};
Run Code Online (Sandbox Code Playgroud)

任何人都可以给我一个原因,为什么这在C++中是非法的?!也就是说,我知道这是一个错误,我知道错误意味着什么,我只是无法理解为什么这是非法的!

c++ member-functions default-value

28
推荐指数
3
解决办法
4948
查看次数

默认函数参数的有效表达式

函数或成员函数中的默认参数的所有可能类型的有效表达式是什么?

c++ c++-faq

5
推荐指数
1
解决办法
794
查看次数