python - 用 Python 编写一次性或匿名类?

标签 python class anonymous-class

我经常有简单的类,我只需要一个实例。举个简单的例子:

import datetime
import sys

class PS1(object):
    def __repr__(self):
        now = datetime.datetime.now()
        return str(now.strftime("%H:%M:%S"))

sys.ps1 = PS1()

有没有办法以某种方式将定义和实例化合并到一个步骤中并获得相同的结果?

再举个例子,简单易懂。

class Example(object):
    def methodOne(self, a, b):
        return a + b

    def methodTwo(self, a, b):
        return a * b

example = Example()

我用谷歌搜索了一无所获(很多人都在使用 one-offanonymous 这样的词,但似乎没有人在谈论与我相同的事情)。我试过了,但没用:

example = class(object):
    def methodOne(self, a, b):
        return a + b

    def methodTwo(self, a, b):
        return a * b

我意识到我并没有得到太多,只有一行我不必输入加上我的命名空间中少了一个东西,所以我理解如果这不存在。

最佳答案

我想你不会经常看到这个,因为它真的很难读,但是......

sys.ps1 = type('PS1', (object,), {'__repr__': lambda self: datetime.datetime.now().strftime('%H:%M:%S')})()

会在这里做的伎俩......

我使用 type 动态地创建一个类(参数是名称、基类、类字典)。在这种情况下,类字典只包含一个函数 __repr__

希望我们能同意完整格式更容易理解和使用 ;-)。

关于python - 用 Python 编写一次性或匿名类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24895416/

相关文章:

java - 自定义异常类未编译到 .class 文件中

Java:我应该在哪里放置匿名监听器逻辑代码?

python - 如何在Python中找到真阳性、真阴性、假阳性、假阴性

python - RelatedObjectDoesNotExist at/admin/login/User 没有 scuser

python - 查找 numpy 元组数组中给定位置的唯一值

java - 匿名内部类显示不正确的修饰符

java - 有没有办法访问另一个匿名类中的匿名类?

python 的生命周期

javascript - javascript 中的 python 风格的类变量

python - 在另一个类的类函数中使用变量(python)