作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将函数分配为类属性,并在类的不同实例中为该函数指定特定参数。所以,如果我有两个实例 foo
和 bar
, 我要 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/
我是一名优秀的程序员,十分优秀!