python - 如何将功能移动到类? Python

标签 python class-attributes

我想在类方法中使用服务函数,其中服务函数在其他地方定义。我想要动态的,所以我可以在不同的情况下定义不同的功能。我试过这个:

def print_a():
    print 'a'

class A:
    func = print_a
    @classmethod
    def apply(cls):
        cls.func()

A.apply()

但是我收到这个错误:

必须使用 A 实例作为第一个参数调用未绑定(bind)方法 print_a()(取而代之的是什么)

有什么想法可以让它发挥作用吗?

最佳答案

您可以使用调用

def print_a():
    print 'a'

class A:

    func = print_a.__call__

    @classmethod
    def apply(cls):
        cls.func()

A.apply()

输出

a

关于python - 如何将功能移动到类? Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45212018/

相关文章:

python: float 的最大公约数(gcd),最好在numpy中

python - 如何使用 tkinter 从另一个类修改一个类中使用的变量?

django - 弃用 Django 模型中的字段

python - Python 中的抽象类属性?

一组类属性的元组的 Python 简写

python - Pyinstaller导入报错没有模块命名路径

python - 将 tfrecords 中的原始字节解码为 tf.feature_column.numeric_column 特征

Python 字典未在不同文件之间更新

带有 Image.ANTIALIAS 的 Python PIL 缩略图。如何保持质量

python - 为什么Python中类属性的赋值行为类似于实例变量的赋值?