gpt4 book ai didi

Python,如何 "automatically"从实例方法调用函数/方法?

转载 作者:行者123 更新时间:2023-11-28 21:51:01 25 4
gpt4 key购买 nike

有没有办法强制 Python 中的实例方法在执行之前调用另一个方法?

一个简单的演示例子:

class MyClass(object):
def __init__(self):
pass
def initialize(self):
print "I'm doing some initialization"
def myfunc(self):
print "This is myfunc()!"

我想要一些方法让 myfunc() 在运行之前自动调用 initialize()。如果我这样做:

obj = MyClass()
obj.myfunc()

我希望看到以下输出:

I'm doing some initialization 
This is myfunc()!

无需在 myfunc() 中显式调用 initialize()。

这样做的原因是如果我有很多“myfunc”实例,比如 myfunc1、myfunc2、myfunc3,它们都需要调用“initialize”,我宁愿让它们都在同一个地方调用一次 initialize,因为反对每次手动调用该方法。这是元类可以做的事情吗?

最佳答案

您可以在 Python 中使用装饰器。让装饰器在被调用的函数之前调用你想要的函数。您将能够在所有需要的功能中使用装饰器。这是语法糖。

关于Python,如何 "automatically"从实例方法调用函数/方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31038891/

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