class-method相关内容

将装饰器附加到类中的所有功能上

我真的不需要这样做,但我只是想知道,是否有一种方法可以将装饰器一般地绑定到类中的所有函数,而不是为每个函数明确声明. 我想它然后成为一种外观,而不是装饰器,它确实有点奇怪,但是在考虑诸如计时或身份验证之类的东西时,它会很整洁. 解决方案 执行此操作或对类定义进行其他修改的最简单方法是定义一个元类. 或者,只需在类定义的末尾应用装饰器即可: class Something: ..
发布时间:2020-05-20 00:27:46 Python

@classmethod和@staticmethod对初学者的意义?

有人可以向我解释python中@classmethod和@staticmethod的含义吗?我需要知道区别和含义. 据我了解,@classmethod告诉类它是一个应该继承到子类中的方法,或...某种方法.但是,这有什么意义呢?为什么不只定义类方法而不添加@classmethod或@staticmethod或任何@定义? tl; dr: 何时应使用它们,为什么应使用它们,如何我用它们吗 ..
发布时间:2020-05-20 00:25:49 Python

如何从ARC下的运行时定义的类方法中返回结构值?

我有一个返回CGSize的类方法,我想通过Objective-C运行时函数调用它,因为我将类和方法的名称指定为字符串值. 我正在XCode 4.2中使用ARC标志进行编译. 方法签名: +(CGSize)contentSize:(NSString *)text; 我尝试做的第一件事是像这样用objc_msgSend调用它: Class clazz = NSClassFr ..

从该类中调用一个类方法

是否可以从同一个类中的另一个方法中调用一个类方法? 例如: +classMethodA{ } +classMethodB{ //I would like to call classMethodA here } 解决方案 在类方法中,self表示要发送消息的类.因此,从另一个类方法(例如classMethodB)中,使用: + (void)classMethodB ..
发布时间:2020-05-19 00:35:15 移动开发

“类方法"与“类方法"之间有什么区别?和“静态方法"?

我使用过几种不同的语言,例如Java,C#和Objective-C. 在大多数语言中,不需要对象实例的方法称为静态方法.但是,在使用Objective-C时,有些人在您将它们称为静态方法时会感到防御,他们希望您将其称为类方法. 为什么它们被称为类方法而不是静态方法?静态方法和类方法有什么区别? 解决方案 所以我的问题是为什么它们被称为类方法而不是 静态方法?静态方法和静态方 ..
发布时间:2020-05-18 23:59:29 移动开发

在python中为@classmethods重写__str__方法

我试图覆盖类的__str__和__repr__,如下面的代码所示.每当我调用instance_method时,都会调用新方法,但对class_method的对象调用保持不变(请参见下面的代码段和输出以清楚了解).有没有办法为@classmethod覆盖__str__和__repr__以便更改cls的值? 我还尝试将__str__和__repr__添加为@classmethod,但没有任何改变 ..
发布时间:2020-05-09 19:01:20 Python

为什么总是将self作为第一个参数添加到类方法中?

可能重复: 为什么您需要明确拥有将"self"参数转换为Python方法? 我了解为什么self总是 类方法的第一个参数,这很有意义,但是如果总是这样,那么对于每个方法定义,为什么都要麻烦键入呢?为什么不做一些在幕后自动完成的事情? 是为了清楚起见,还是在某些情况下您可能不想将self作为第一个参数? 解决方案 因为显式优于隐式.通过使参数成为明确的要求,可以简化代码的理解, ..
发布时间:2020-05-09 18:38:23 Python

类和实例方法有什么区别?

类方法和实例方法有什么区别? 实例方法是访问器(getter和setter)而类方法是几乎所有其他东西吗? 像其他大多数答案所说的那样,实例方法使用类的实例,而类方法只能与类名一起使用.因此,在Objective-C中对它们进行了定义: @interface MyClass : NSObject + (void)aClassMethod; - (void)anInstanceMet ..
发布时间:2020-05-09 18:33:34 移动开发

类方法对象如何工作?

我很难理解类方法对象在Python中是如何工作的,尤其是在元类和__new__中.在我的特殊情况下,当我遍历赋予__new__的members时,我想获得一个classmethod成员的名称. 对于普通方法,名称只是存储在__name__属性中,但是对于类方法,显然没有这样的属性.我什至看不到如何调用classmethod,因为也没有__call__属性. 有人可以向我解释类方法的工作 ..
发布时间:2020-05-09 01:41:10 Python