扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
已有字符串形式的函数名称,那么如何调用这个函数呢?
成都创新互联成都网站建设定制网站开发,是成都营销推广公司,为办公窗帘提供网站建设服务,有成熟的网站定制合作流程,提供网站定制设计服务:原型图制作、网站创意设计、前端HTML5制作、后台程序开发等。成都网站设计热线:028-86922220
通过调用内置函数locals()和globals()返回的字典对象,就可以可以获得名称与对象的映射关系。其中,locals()仅在全局范围内调用时可以获得函数对象。 我们来看以下的例子。
需要注意的是,使用上述方法通过字符串调用函数时,为了系统的安全,防止执行任意函数,需要对函数名做一些处理,也就是使用统一的前缀为这些函数命名。例如在上述例子中,使用前缀cmd_+函数名的形式定义函数(cmd_help,cmd_sum)。
在传入函数名字符串时,只传入函数名的后半部分(如"help","sum"),由程序添加前缀后组成完整的函数名,再调用该函数。
对于类的成员函数,则可以使用getattr()获得类成员函数。
上述代码通过字符串调用了类成员函数,与前一段代码执行的结果相同。
此外,还可以使用字典将字符串与函数对应起来调用,缺点就是每增加一个函数需要相应在字典对象中添加相应的键值,增加代码维护工作量。
以上代码在Python 3.6以上运行通过。
同一个类中一个函数里调用另一个函数的方法
class Solution:
def a(self):
self.b() # 注意这种写法:self.类名
def b(self):
print('在这里')
a = Solution()
a.a()
调用函数使用:对象.函数()
对应上面的代码就是
aaa.haha()
完整的代码如下:
答: 你讲的这个是pyqt里面的内容,刚好我最近也一直在学,在代码当中确实没有显式调用这个函数,但是你要知道, keyPressEvent是一个槽函数,在系统内部定义了这个函数,但是里面没有任何代码,而你就是对它重写了,就是说,只要你的键盘里面的任何一个键按下,就相当于会发送一个信号,那么在内部就会自动调用这个函数。类似的函数还有 keyReleaseEvent(键位松开时自动触发)等。希望可以帮助到你。
相关介绍
1:
简单的函数演示:
这个enumerate 函数挺有意思,用一次就爱不释手,可以自己去敲敲代码感受一下。
2:上面仅仅是简单的一个展示已经存在的书籍名称,加入我新增了一本书,新增完成之后,我需要再show一下目前我有那些书呢?
如果没有函数之前,我们肯定需要再次执行一遍所有有关print的代码,但是函数的功能就是让我们减少重复冗余的代码,只要再次调用show_book()即可。
再举一个简单的例子,在一个函数内调用另外一个函数,并传递参数
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流