gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 01:08:09 25 4
gpt4 key购买 nike

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

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com