gpt4 book ai didi

python-3.x - python : How do I alias a function with specific parameters?

转载 作者:行者123 更新时间:2023-12-04 01:59:35 24 4
gpt4 key购买 nike

我正在尝试将函数分配为类属性,并在类的不同实例中为该函数指定特定参数。所以,如果我有两个实例 foobar , 我要 foo.func()运行 function(param1)当它被调用和 bar.func()运行 function(param2)当它被调用时。

我试过这样的事情:

class Class:
def __init__(self, func):
self.func = func

foo = Class(function(param1))
bar = Class(function(param2))

但是当我运行它时, foo = Class(function(param1))语句只是执行 function(param1)而不是创建类的新实例。如果我尝试单独为该函数设置别名,则会出现同样的问题,例如:
alias_func = function(param1)
foo = Class(alias_func)

有没有办法做到这一点?我真的不想为类的每个实例定义一个新函数,但我在搜索中没有找到任何关于它的信息。谢谢大家!

最佳答案

您可以使用 functools.partial 一般:

from functools import partial

class MyClass:
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z

abc = partial(MyClass, 'a', 'b', 'c')

test1 = abc()
test2 = abc()

print(test1.x) # prints a
assert test1 is not test2 # Make sure abc is producing different objects

关于python-3.x - python : How do I alias a function with specific parameters?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48217149/

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