python有指针吗


本文摘自php中文网,作者爱喝马黛茶的安东尼,侵删。

Python对指针做了良好封装,一切都是“对象”,一切对象都有一个“变量”指向它。这个“变量”就是“指针”。和Java一样,它不可以随机移动,不可以运算。包括函数也是一个“对象”,用一个变量指向它,就是指向函数的入口地址。

C++中指向函数入口地址的指针,叫做函数指针。所以,这一名词我们也借用到Python中。

比如,我写一个排序的代码段,用STL里的sort:

1

2

int arr[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是不稳定排序,所以两数相等时仍有可能交换位置。

相关推荐:《python视频教程》

我们写一个降序排序。那就需要先写一个比较函数cmp:

1

2

3

4

bool cmp(int a,int b)

{

    return a>b;//当后面的数大于前面时交换

}

然后,函数名就是它的入口地址,所以我们把它传进去:

1

std::sort(a,a+10,cmp);

Python中也类似,假设有一个列表的排序函数Sort(list, cmp)

那么,cmp也是一个“对象”,它可以传入函数入口地址。调用语句如下:

1

2

3

def cmp(a,b):return a>b

li=[5,8,4,7,6,5,7,4,2,9]

Sort(li,cmp)

也就类似于函数指针的功能。

以上就是python有指针吗的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python pandas中dataframe类型数据操作函数的方法

Python中什么是对象

Python怎么建立空列表

Python的元类如何使用

Python实现对指定输入的字符串逆序输出的方法

Python求平均值

Python输入错误怎么删除

Python输出怎么保留两位小数

Python列表list

Python在实际工作中的应用有哪些

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...