jjzjj

classMethods

全部标签

ruby - YARD:记录由包含的模块添加的类方法

我正在使用YARD为我的ruby​​gem编写文档.在我的gem中,我有一些代码遵循这种常见的ruby​​模式,其中一个模块包含在一个类中,并且该模块不仅添加了实例方法,还添加了类方法:moduleMoodefself.included(klass)klass.extendClassMethodsendmoduleClassMethodsdefhelloputs"hello"endendendclassFooincludeMooendFoo.hello#=>classmethodruns,printing"hello"默认情况下,YARD将为Foo类生成如下所示的文档:我认为此文档不充

ruby-on-rails - 为什么我们需要 ClassMethods 和 InstanceMethods?

我读了API对于ActiveSupport::Concern。有ClassMethods和InstanceMethods,我们可以把类方法放在ClassMethods中。但是M的宿主可以使用M中定义的方法,不是吗?为什么我不能只写:moduleMdefself.xenddefyendend而不是:moduleMmoduleClassMethodsdefxendendmoduleInstanceMethodsdefyendendend 最佳答案 您可能对Yehuda'stakeonthispattern感兴趣.我认为其中一些原因是历史

ruby - 为什么模块 `ClassMethods` 在同一个命名空间中定义和扩展?

我正在尝试理解来自githubrepo的代码.它是设置客户端的gem的主要模块。moduleGithub#morecodeclass为什么是class和moduleClassMethods使用,然后扩展而不是包含在class中部分?有一个类方法defincluded(base).这似乎将类方法添加到特定对象中。为什么会这样?它可能与类的功能有关,但我不明白。 最佳答案 moduleMyModuleclassendend这实际上是Ruby中很常见的做法。基本上,它的意思是:当某个对象执行includeMyModule时,也使它也ext

Ruby:是否可以在模块中定义类方法?

假设有三个类:A、B和C。我希望每个类都有一个类方法,例如self.foo,它具有与A、B和完全相同的代码C.是否可以在模块中定义self.foo并将此模块包含在A,B&C?我尝试这样做,但收到一条错误消息,指出无法识别foo。 最佳答案 是的moduleFoodefself.included(base)base.extend(ClassMethods)endmoduleClassMethodsdefsome_method#stuffendendend我应该添加一个可能的注意事项-如果模块将成为所有类方法-最好只在模型中使用exte

Python方法:@staticmethod和@classmethod

目录一、@staticmethod和@classmethod的基本概念二、@staticmethod和@classmethod的区别三、@classmethod的应用场景四、@staticmethod的应用场景五、代码实现和对比5.1不使用@staticmethod和@classmethod5.2使用@classmethod5.3使用staticmethod5.4@classmethod与@staticmethod对比小结一、@staticmethod和@classmethod的基本概念在常用的Python方法中,我们调用类的方法,每次都需要进行实例化,然后用实例化.方法进行调用。Python

javascript - Sequelize classMethods 与 instanceMethods

所以开始我对Node.js的所有事物的冒险。我正在尝试学习的工具之一是Sequelize。所以我将开始我想做的事情:'usestrict';varcrypto=require('crypto');module.exports=function(sequelize,DataTypes){varUser=sequelize.define('User',{username:DataTypes.STRING,first_name:DataTypes.STRING,last_name:DataTypes.STRING,salt:DataTypes.STRING,hashed_pwd:DataTy

javascript - Sequelize classMethods 与 instanceMethods

所以开始我对Node.js的所有事物的冒险。我正在尝试学习的工具之一是Sequelize。所以我将开始我想做的事情:'usestrict';varcrypto=require('crypto');module.exports=function(sequelize,DataTypes){varUser=sequelize.define('User',{username:DataTypes.STRING,first_name:DataTypes.STRING,last_name:DataTypes.STRING,salt:DataTypes.STRING,hashed_pwd:DataTy

Python 2.7 结合 abc.abstractmethod 和 classmethod

如何在Python2.7中为抽象类方法创建装饰器?是的,这类似于thisquestion,除了我想组合abc.abstractmethod和classmethod,而不是staticmethod。此外,看起来abc.abstractclassmethod是addedinPython3(Ithink?),但我使用的是GoogleAppEngine,所以我目前仅限于Python2.7提前致谢。 最佳答案 这是一个从Python3.3的abc模块中的源代码派生的工作示例:fromabcimportABCMetaclassabstractc

Python 2.7 结合 abc.abstractmethod 和 classmethod

如何在Python2.7中为抽象类方法创建装饰器?是的,这类似于thisquestion,除了我想组合abc.abstractmethod和classmethod,而不是staticmethod。此外,看起来abc.abstractclassmethod是addedinPython3(Ithink?),但我使用的是GoogleAppEngine,所以我目前仅限于Python2.7提前致谢。 最佳答案 这是一个从Python3.3的abc模块中的源代码派生的工作示例:fromabcimportABCMetaclassabstractc

python - 这段代码中 classmethod 的目的是什么?

这个问题在这里已经有了答案:Whatisthepurposeofclassmethods?(18个回答)关闭上个月。在django.utils.tree.py中:def_new_instance(cls,children=None,connector=None,negated=False):obj=Node(children,connector,negated)obj.__class__=clsreturnobj_new_instance=classmethod(_new_instance)我不知道classmethod在这个代码示例中做了什么。谁能解释一下它的作用和使用方法?