知行编程网知行编程网  2022-11-14 03:00 知行编程网 隐藏边栏  20 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python中有指针吗的相关知识,包括python没了指针用什么来代替,以及python获取文件指针的方法这些编程知识,希望对大家有参考作用。

python中有指针吗

Python在封装指针方面做得很好,一切都是“对象”,每个对象都有一个“变量”指向它。这个“变量”就是“指针”。像Java一样,它不能随机移动,也不能进行计算。包含一个函数也是一个“对象”,用变量指向它就是指向函数的入口地址。

C++中指向函数入口地址的指针称为函数指针。因此,我们也从 Python 中借用了这个术语。

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

int arr[10]={5,8,4,7,6,5,7,4,2,9};
std::sort(arr,arr+10);

默认是按升序排序。如果我想要一个特殊的排序标准,我需要提供第三个参数。第三个参数是函数指针。排序的原理是,假设原序列中的b在a之前,当函数指针pf(a,b)调用的函数的返回值为真时发生交换。返回false时,与排序算法有关。比如 sort 是一种不稳定的排序,所以当两个数相等时还是可以交换位置的。

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

bool cmp(int a,int b)
{
    return a>b;//当后面的数大于前面时交换
}

那么,函数名就是它的入口地址,所以我们传入:

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

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

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

def cmp(a,b):return a>b
li=[5,8,4,7,6,5,7,4,2,9]
Sort(li,cmp)

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

python学习网,免费的在线学习
,欢迎关注!

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享