会员登录 - 用户注册 - 设为首页 - 加入收藏 - 网站地图 如何在 Python 中调用函数?九种方法任你挑选!

如何在 Python 中调用函数?九种方法任你挑选

时间:2025-11-05 01:42:09 来源:益强数据堂 作者:IT科技类资讯 阅读:944次

1. 直接函数调用

这是何P函数最简单、最直观的中种方方式:

def test():     print("This is a test") test() 

2. 使用partial()函数

在 的内置库中functools,有一个专用于生成偏函数的调用偏函数partial。

def power(x,法任 n):     s = 1     while n > 0:         nn = n - 1         ss = s * x     return s from functools import partial power_2 = partial(power, n=2) power_2(3)  # output: 9 power_2(4)  # output: 16 

3. 使用 eval()

如果需要动态执行函数,可以使用 eval + string 来执行函数。挑选

# demo.py import sys def pre_task():     print("running pre_task") def task():     print("running task") def post_task():     print("running post_task") argvs = sys.argv[1:] for action in argvs:     eval(action)() 

执行:

$ python demo.py pre_task task post_task running pre_task running task running post_task 

4. 使用 getattr()

如果把所有的何P函数函数都放在类中,源码库并定义为静态方法,中种方就可以使用getattr()get和调用它们。调用

import sys class Task:     @staticmethod     def pre_task():         print("running pre_task")     @staticmethod     def task():         print("running task")     @staticmethod     def post_task():         print("running post_task") argvs = sys.argv[1:] task = Task() for action in argvs:     func = getattr(task,法任 action)     func() 

5. 使用 __dict__()

我们都知道对象有一个__dict__()魔法方法,它存储任何对象的挑选属性和方法。

您可以调用类方法使用__dict__.get

import sys class Task:     @staticmethod     def pre_task():         print("running pre_task") func = Task.__dict__.get("pre_task") func.__func__() # Output $ python /tmp/demo.py running pre_task 

6. 使用 global()

在 的何P函数内置库中functools,有一个专用于生成偏函数的中种方偏函数partial。

import sys def pre_task():     print("running pre_task") def task():     print("running task") def post_task():     print("running post_task") argvs = sys.argv[1:] for action in argvs:     globals().get(action)() # Output $ python /tmp/demo.py pre_task task post_task running pre_task running task running post_task 

7. 从文本编译和运行

您可以在字符串中定义您的站群服务器调用函数,并使用该compile函数将其编译为字节码,法任然后用于exec执行它。挑选

pre_task = """ print("running pre_task") """ exec(compile(pre_task, , exec)) # Or from a text file with open(source.txt) as f:     source = f.read()     exec(compile(source, source.txt, exec)) 

8. 使用attrgetter()

在 的内置库中operator,有一个获取属性的方法,称为attrgetter,获取函数后执行。

from operator import attrgetter class People:     def speak(self, dest):         print("Hello, %s" %dest) p = People() caller = attrgetter("speak") caller(p)("Tony") # Output $ python /tmp/demo.py Hello, Tony 

9. 使用methodcaller()

还有一个methodcaller方法在operator

from operator import methodcaller class People:     def speak(self, dest):         print("Hello, %s" %dest) caller = methodcaller("speak", "Tony") p = People() caller(p) # Output $ python /tmp/demo.py Hello, Tony 亿华云计算

(责任编辑:系统运维)

推荐内容
  • 远程桌面设置教程(轻松掌握远程桌面设置,实现远程访问需求)
  • 4、说起来容易
  • 4、企业无形资产:通用网站已成为企业网络知识产权的重要组成部分,属于企业的无形资产,也有助于提升企业的品牌形象和技术领先形象。它是企业品牌资产不可或缺的一部分。
  • 其次,一般域名注册有一个获取密码的按钮,域名注册商点击后会向您发送密码。在得到域名注册商发送的密码后,将其传输到域名服务提供商网站,然后输入密码,此时域名呈现申请状态。提交申请后,原注册人通常会向您发送一封电子邮件,询问您是否同意转让。此时,您只需点击同意转移按钮,域名注册商就可以成功转移。
  • 电脑网络链接错误怎么办?(解决常见电脑网络链接错误的方法与技巧)
  • 4、club娱乐
热点内容