📜  通过字符串 python 调用类函数(1)

📅  最后修改于: 2023-12-03 15:28:25.442000             🧑  作者: Mango

通过字符串 Python 调用类函数

在 Python 中,我们可以通过字符串的方式来调用类函数。这在某些时候非常方便,例如当你需要根据某些条件来调用不同的类函数时。

下面是一些示例代码,让你可以更好地理解如何通过字符串调用类函数。

示例1 - 直接调用
class MyClass:
    
    def foo(self):
        print('foo is called')
        
    def bar(self):
        print('bar is called')

my_class = MyClass()
func_name = 'foo'
getattr(my_class, func_name)()
func_name = 'bar'
getattr(my_class, func_name)()

该示例中定义了一个 MyClass 类,它包含了 foo 和 bar 两个函数。然后我们实例化了 MyClass 类,并通过字符串的方式依次调用了 foo 和 bar 函数。

输出如下:

foo is called
bar is called
示例2 - 执行前的条件判断
class MyClass:
    
    def foo(self):
        print('foo is called')
        
    def bar(self):
        print('bar is called')

my_class = MyClass()
condition = True
func_name = 'foo' if condition else 'bar'
getattr(my_class, func_name)()

该示例中也是定义了一个 MyClass 类,然后我们定义了一个 condition 变量,如果 condition 为 True,则执行 foo 函数,否则执行 bar 函数。

输出如下:

foo is called
示例3 - 处理异常
class MyClass:
    
    def foo(self):
        print('foo is called')
        
    def bar(self):
        print('bar is called')

my_class = MyClass()
func_name = 'baz'
try:
    getattr(my_class, func_name)()
except AttributeError:
    print(f"MyClass has no attribute '{func_name}'")

该示例中我们尝试调用 MyClass 类中不存在的函数 baz,然后我们通过 try...except 来捕获 AttributeError,输出提示信息。

输出如下:

MyClass has no attribute 'baz'

以上就是通过字符串 Python 调用类函数的几个示例,希望能对您有所帮助。