相关疑难解决方法(0)

静态工厂方法与实例(普通)构造函数?

在两者都可用的语言中,您更愿意看到实例构造函数或返回实例的静态方法吗?

例如,如果您要创建String一个char[]:

  1. String.FromCharacters(chars);

  2. new String(chars);

constructor design-patterns coding-style

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

numpy.ndarray:转换为"普通"类

[Python 3]

我喜欢,ndarray但我觉得使用起来很烦人.

这是我面临的一个问题.我想写class Array一下,它将继承ndarray的大部分功能,但只有一种方法可以实例化:作为一个特定大小的零填充数组.我希望写:

class Array(numpy.ndarray):
  def __init__(size):
    # What do here?
Run Code Online (Sandbox Code Playgroud)

我想调用super().__init__一些参数来创建一个零填充数组,但由于ndarray使用全局函数numpy.zeros(而不是构造函数)来创建一个零填充数组,因此它不起作用.

问题:

  1. 为什么ndarray在很多情况下使用全局(模块)函数而不是构造函数?如果我试图在面向对象的环境中重用它们,那将是一个很大的烦恼.

  2. 定义class Array我需要的最佳方法是什么?我应该只手动填充ndarray零,还是有任何方法可以重用该zeros功能?

python numpy wrapper python-3.x

6
推荐指数
2
解决办法
1720
查看次数