python 不同参数选择不同函数
2021/8/16 14:36:22
本文主要是介绍python 不同参数选择不同函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
有时候需要根据不同的情况调用不同的方法实现功能逻辑,有什么优雅的方式可以实现么?
首先有一个最原始的 if ... else 方式
parm = 'A'
def A():
print("A")
def B():
print("B")
if parm == 'A':
A()
elif parm == 'B':
B()
这样的方式可以实现功能逻辑,但是略显low,而且后续的扩展不大好
那是否有更好的方式呢?
func_dict
func_dict.get(x, func_None)()中方法是从字典中取出值对应的函数对象,然后后面加上()是执行该对象的__call__方法。因为python中函数就是实现了__call__方法的对象
def funcA():
pass
def funcB():
pass
def func_None():
print "cannot find func"
func_dict = {"a": funcA, "b": funcB}
def func(x):
return func_dict.get(x, func_None)()
exec
exec内置函数是继eval之后的一个很有用的函数,可以执行python的代码,传入python的代码字符串就行
parm = 'A'
def A(m):
print("A+", m)
def B(m):
print("B+", m)
eval("{0}".format('A'))('xx')
getattr()
用于返回一个对象属性值
语法:
getattr(object, name[, default])
参数:
object – 对象。
name – 字符串,对象属性。
default – 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError
返回值:
返回对象属性值
parm = 'A'
class C(object):
def A(self,m):
print("A+",m)
def B(self,m):
print("B+",m)
getattr(C(), parm)('p')
推荐使用
————————————————
版权声明:本文为CSDN博主「sysu_lluozh」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lluozh2015/article/details/102748752
这篇关于python 不同参数选择不同函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器