我一直在设置元类,如下所示:
class SomeMetaClass(type):
def __new__(cls, name, bases, dict):
#do stuff here
但是我只是遇到了这样定义的元类:
class SomeMetaClass(type):
def __init__(self, name, bases, dict):
#do stuff here
有什么理由比另一个更喜欢吗?
更新
:请记住,我在询问有关在类中使用__new__
和__init__
的问题。我已经在另一堂课中了解了它们之间的区别。但是在元类中,我不能__new__
用来实现缓存,因为__new__
仅在元类中创建类时才调用它。
问题内容: 我的团队没有经验丰富的JS开发人员,但是我们正在Node中编写一个库,并得到了一位真正的JS开发人员的建议:“我们应该使js更具模块化- 不会污染全局名称空间并使之更具可读性。给新来者”,并告诉我们执行以下操作: 而不是 这有什么意义(如果有)?后者不会进行IIFE范围内的任何本地声明,即使这样,它们对于模块文件也是本地的,而不是整个文件的全局程序。 尽管我已经阅读了许多关于IIFE的
问题内容: 在讨论元类时,文档指出: 当然,您也可以覆盖其他类方法(或添加新方法)。例如,在元类中定义自定义方法可在调用类时允许自定义行为,例如,并非总是创建新实例。 我的问题是:假设我想在调用类时具有自定义行为,例如缓存而不是创建新对象。我可以通过重写类的方法来做到这一点。什么时候我想用它定义一个元类?这种方法带来了什么是无法实现的? 问题答案: 直接回答你的问题是:当你想要做 更多的 不仅仅是
问题内容: 我在ui-router中使用Typescript。有没有人为此找到任何打字稿定义。我看了确定的打字,什么也看不见。这是我要查找的接口文件: 问题答案: 我们将此 d.ts 用于: 更新的链接,2015年5月 https://github.com/borisyankov/DefinitelyTyped/blob/master/angular-ui- router/angular-ui-
当从@RestController而不是DTO返回@Entity时,是否存在任何缺陷?这样地:
问题内容: 似乎抽象类意味着该类的定义不完整,因此无法实例化。 我看到了一些简单的Java代码,其中包含一个抽象类,其中定义了所有方法。然后我想知道,为什么他们将其作为抽象类而不是真实类?他们是在这样做,所以我们不能从这个抽象类实例化吗?还是从定义了所有内容的抽象类中获得其他好处? 问题答案: 即使所有方法都具有默认实现,也有可能这些实现在应用程序上下文中实际上没有 意义 。这些方法可能仅进行内部
抽象基类提供的是类继承结构的公共祖先。接口描述实现类的原子级功能。两者都更有千秋,却不尽相同。接口是一种合约式的设计:实现接口的类必须提供所有期望函数的实现。抽象基类提供一组相关类的共有抽象。这是老套的,它是这样的:继承是“ is a ”的关系,接口是“ behavies like ”的关系。这些陈词滥调已经说了很久了,因为它们的结构说明了彼此的不同:基类描述的是对象是什么,接口描述的是对象的表现