首页 / 知识
pythonpython中有指针吗
2023-11-12 13:16:00
Python对指针做了良好封装,一切都是“对象”,一切对象都有一个“变量”指向它。这个“变量”就是“指针”。和Java一样,它不可以随机移动,不可以运算。包括函数也是一个“对象”,用一个变量指向它,就是指向函数的入口地址。
C++中指向函数入口地址的指针,叫做函数指针。所以,这一名词我们也借用到Python中。
比如,我写一个排序的代码段,用STL里的sort:
intarr[10]={5,8,4,7,6,5,7,4,2,9};
std::sort(arr,arr+10);
默认是升序排序。如果我想要特殊的排序标准,那就要提供第三个参数。第三个参数就是一个函数指针。sort的原则就是,假设原序列中b在a之前,当函数指针pf(a,b)调用的函数的返回值为true时发生交换。返回false时,和排序的算法有关,比如sort是不稳定排序,所以两数相等时仍有可能交换位置。
我们写一个降序排序。那就需要先写一个比较函数cmp:
boolcmp(inta,intb)
{
returna>b;//当后面的数大于前面时交换
}
然后,函数名就是它的入口地址,所以我们把它传进去:
std::sort(a,a+10,cmp);
Python中也类似,假设有一个列表的排序函数Sort(list,cmp)
那么,cmp也是一个“对象”,它可以传入函数入口地址。调用语句如下:
defcmp(a,b):returna>b
li=[5,8,4,7,6,5,7,4,2,9]
Sort(li,cmp)
也就类似于函数指针的功能。
以上内容为大家介绍了Python培训之python中有指针吗,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们
最新内容
相关内容
python如何读取列表中元素的位置?
python如何读取列表中元素的位置?,位置,数据,异常,培训,字符串,元素,索引,方法,示例,结果,python读取列表中元素位置的方法:1、使用index()方python中函数怎么表示?
python中函数怎么表示?,名称,标准,培训,代码,函数,圆括号,字符串,表达式,选择性,自变量,python中函数定义规则:·函数代码块以def关键词开头,后如何在python代码中指定保存的文件
如何在python代码中指定保存的文件格式,代码,培训,文件格式,格式,二进制文件,文件,后缀,以上,方法,更多,python指定保存文件格式的方法:1、保python如何看变量属性
python如何看变量属性,培训,属性,函数,变量,参数,对象,方法,列表,范围内,字典,1、使用dir()函数查看dir()函数不带参数时,返回当前范围内的变python函数里面形参和实参一样吗?
python函数里面形参和实参一样吗?,培训,函数,参数,里面,变量,实际,形式,全称,示例,后面,python函数里面形参和实参不一样。形参全称是形式参Python写完代码怎么用
Python写完代码怎么用,代码,下来,数字,概念,培训,文本,模式,文件,程序,路径,python运行有两种方式,一种是在python交互式命令行下运行;另一种怎么查看python模块在什么位置
怎么查看python模块在什么位置,位置,代码,培训,模块,路径,下面,以上,文件,方法,更多,查看python模块在什么位置的方法:若要获取模块的文件名为怎么查看python变量值
怎么查看python变量值,信息,培训,类型,函数,字符串,变量,使用方法,数据类型,以上,方法,有时候我们需要知道Python变量类型,但不知道如何查看内python的闭包函数是什么
python的闭包函数是什么,代码,工作,函数,培训,程序,外部,个数,变量,嵌套,赋值,python中的闭包,又称闭包函数或者闭合函数,其实和前面讲的嵌套函python代码运行需要编译吗
python代码运行需要编译吗,代码,培训,做好,体系,平台,语言,机器码,目标,厨师,下次,有人在讨论Python代码是编译执行还是解释执行?这个问题还怎么找到苹果电脑 python安装位置
怎么找到苹果电脑 python安装位置,系统,位置,培训,版本,苹果电脑,终端,路径,命令,里面,以上,Mac系统自带python路径为:/System/Library/Framepython对象与方法的区别是什么
python对象与方法的区别是什么,地址,数据,培训,对象,函数,类型,字符串,方法,表示,身份,python使用对象模型来存储数据,也就是说构造任何类型的