一文搞懂python的内建函数,自己添加一个print函数

简介: 写python的同学应该都用过print函数,这个函数我们没有定义为什么可以调用?

写python的同学应该都用过print函数,这个函数我们没有定义为什么可以调用?


答案就是因为 print 是内建函数,python的内建函数式都是常用的工具函数,也是系统内置的函数,今天就说下内建函数,结合例子看下,废话不多说,开始


1、什么是内建函数?


python内建函数指的是python自带的函数,这种函数不需要定义,并且不同的内建函数具有不同的功能,可以直接使用。


#!/usr/bin/python2.6
# -*- coding: utf-8 -*-
import builtins
def test():
    print("dsada")
if __name__ == '__main__':
    #   增加内建函数
    builtins.__dict__["testFunc"] = test
    testFunc()
    pass
复制代码


2、内置的内建函数多有哪些?


官方的文档说明链接:docs.python.org/3.9/library…


这里我截图了函数,可以做一个概览,看名字也能猜出这些函数都是做什么的

3c2b3cd2f2e4417e8c7f35965a228fdf~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg

对上面的函数进行分组:


数学类:sum(),pow(),sum(),round()


随机类:choice(),random(),seed(),shuffle(),uniform()


数字类:abs(),min(),max(),divmod(),ascii()


系统类:xxxattr,xxxmethod,


数据类型:set(),map(),tuple(),list(),bool(),int(),str(),


综合类:其他的可以归于此类


3、特殊函数说明

3.1 exec


格式:exec obj


obj对象可以是字符串(如单一语句、语句块),文件对象,也可以是已经由compile预编译过的代码对象。

举个例子


exec( "print('香菜')")
复制代码


3.2 eval


格式:eval( obj[, globals=globals(), locals=locals()] )


obj可以是字符串对象或者已经由compile编译过的代码对象。globals和locals是可选的,分别代表了全局和局部名称空间中的对象,其中globals必须是字典,而locals是任意的映射对象。


x = 3
print(eval('3*x'))
复制代码


输出结果是9 ,eval 可以引用上下文

3.3 compile


格式:compile( str, file, type )


compile语句是从type类型(包括’eval’: 配合eval使用,’single’: 配合单一语句的exec使用,’exec’: 配合多语句的exec使用)中将str里面的语句创建成代码对象。file是代码存放的地方,通常为”。


compile语句的目的是提供一次性的字节码编译,就不用在以后的每次调用中重新进行编译了。


compile()函数将string编译为代码对象,编译生成的代码对象接下来被exec语句执行,接着能利用eval()函数对其进行求值。filename参数应是代码从其中读出的文件名。如果内部生成文件名,filename参数值应是相应的标识符。kind参数指定string参数中所含代码的类别


3.4 globals和locals


globals()会以字典类型返回当前位置的全部全局变量。


locals()以字典类型返回当前位置的全部局部变量。


对于函数, 方法, lambda 函式, 类, 以及实现了 call 方法的类实例, 它都返回 True。


4、自己增加一个内置函数


在开发过程有些函数经常调用,但是每次都要导包什么的还挺麻烦的,就想着能不能把某几个工具函数加入到内建函数,只要有问题,其他人就会有同样的问题,其实解决的办法很简单,就是在builtins 中dict中添加函数就可以了,下面是个例子:


#!/usr/bin/env python
# encoding: utf-8
"""
#Author: 香菜
@time: 2021/10/10 0010 下午 10:22
"""
import builtins
def test():
    print("dsada")
if __name__ == '__main__':
    #   增加内建函数
    builtins.__dict__["testFunc"] = test
    testFunc()
    pass
复制代码


5、总结


python的内置函数并没有什么特殊的,只不过是系统提供的一些工具方法,实现也都很简单,记住这些常用的工具方法,在开发中一定可以事半功倍,

目录
相关文章
|
2月前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
138 67
|
27天前
|
Python
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
48 18
|
19天前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
46 8
|
28天前
|
Python
Python中的函数
Python中的函数
40 8
|
2月前
|
监控 测试技术 数据库
Python中的装饰器:解锁函数增强的魔法####
本文深入探讨了Python语言中一个既强大又灵活的特性——装饰器(Decorator),它以一种优雅的方式实现了函数功能的扩展与增强。不同于传统的代码复用机制,装饰器通过高阶函数的形式,为开发者提供了在不修改原函数源代码的前提下,动态添加新功能的能力。我们将从装饰器的基本概念入手,逐步解析其工作原理,并通过一系列实例展示如何利用装饰器进行日志记录、性能测试、事务处理等常见任务,最终揭示装饰器在提升代码可读性、维护性和功能性方面的独特价值。 ####
|
2月前
|
Python
Python中的`range`函数与负增长
在Python中,`range`函数用于生成整数序列,支持正向和负向增长。本文详细介绍了如何使用`range`生成负增长的整数序列,并提供了多个实际应用示例,如反向遍历列表、生成倒计时和计算递减等差数列的和。通过这些示例,读者可以更好地掌握`range`函数的使用方法。
54 5
|
2月前
|
中间件 Docker Python
【Azure Function】FTP上传了Python Function文件后,无法在门户页面加载函数的问题
通过FTP上传Python Function至Azure云后,出现函数列表无法加载的问题。经排查,发现是由于`requirements.txt`中的依赖包未被正确安装。解决方法为:在本地安装依赖包到`.python_packages/lib/site-packages`目录,再将该目录内容上传至云上的`wwwroot`目录,并重启应用。最终成功加载函数列表。
|
Python
Python 字符串str类型的方法(内建函数)分类举例列表
Python 字符串str类型的方法(内建函数)分类举例列表
94 0
|
28天前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!