任何关于算法、编程、AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”学习小组“,沙雕博主在线答疑~此外,公众号内还有更多AI、算法、编程和大数据知识分享,以及免费的SSR节点和学习资料。其他平台(知乎/B站)也是同名「图灵的猫」,不要迷路哦~

一切都是对象,一切都是指针,一切都是东西(python的编程哲学)

终于把1000多页的python学习手册啃完了。从来没有从深层次上去理解一门编程语言,学习c是如此,学习java也是如此。总觉得这些语言就是拿来用的。不用管它为什么要创造出来。

这几天认真系统的学习了python语言,泯泯之中和python的作者有点神交。

我的感受:

说python起源于c,一点都不过分。而且,处处是指针,处处是对象。不得不佩服作者的创造力,自己曾经也被c语言的指针整的焦头烂额。能不用就不碰,那内存崩溃是刚刚的。没想象,python的作者把c语言的指针整这么溜,甚至发展成为一门编程语言,还集成在各种Linux系统中。

现在发现,不能用c语言的思路去理解python语言了。网上很多c#和python的比较,但是我要说的是,这两种语言设计思路从最核心,最底层的解决思路是不一样的。c#更像java。而python更像c。

看看,a =5 在c中是非常普通的赋值,我们也通常把这个语句叫做赋值语句,但是在python中,这样的理解就错了。

我们分别查一下他们的内存地址,发现地址是一样的,原来python把这语句看做是对象实例化的语句。就是把一个整数对象实例化变量为a,如果用c来写的话,要 写成:

a= new 5()

是不是很奇怪,一个类,或者对象是不可以用数字来命名的,但是作为对象实例化,或者类的实例化,问题就很好理解了。

可以a = 5,页可以 a='aaa'等。而且这个时候,原来的a的地址回收了。这里的a又重新指向字符串的地址了。

说白了,并不是定义了一个变量,而是定义了一个指针:

c:  *a = 5

总而言之:python把一切数据,一切的一切都看作对象,在python中,没有变量,只有指针,要说变量,也是指针变量。

Python与C:指针与按址传递相关推荐

  1. python中的记录指针_使用Python向C语言的链接库传递数组、结构体、指针类型的数据...

    使用python向C语言的链接库传递数组.结构体.指针类型的数据 由于最近的项目频繁使用python调用同事的C语言代码,在调用过程中踩了很多坑,一点一点写出来供大家参考,我们仍然是使用ctypes来 ...

  2. python结构体数组传出接收c动态库_使用Python向C语言的链接库传递数组、结构体、指针类型的数据...

    使用python向C语言的链接库传递数组.结构体.指针类型的数据 由于最近的项目频繁使用python调用同事的C语言代码,在调用过程中踩了很多坑,一点一点写出来供大家参考,我们仍然是使用ctypes来 ...

  3. c++中的引用和python中的引用_对比 C++ 和 Python,谈谈指针与引用

    作者 | 樱雨楼 引言 指针(Pointer)是 C.C++ 以及 Java.Go 等语言的一个非常核心且重要的概念,而引用(Reference)是在指针的基础上构建出的一个同样重要的概念. 指针对于 ...

  4. 对比 C++ 和 Python,谈谈指针与引用

    花下猫语:本文是学习群内 樱雨楼 小姐姐的投稿.之前已发布过她的一篇作品<当谈论迭代器时,我谈些什么?>,大受好评.本文依然是对比 C++ 与 Python,来探讨编程语言中极其重要的概念 ...

  5. 结构体知识------值传递和址传递

    结构体知识------值传递和址传递 相关知识 区别 值传递 址传递 例子 作用 程序 运行结果 相关知识 普通变量(char a):a是变量名,对应内存空间的大小是sizeof(char),对应地址 ...

  6. java怎么传入参数到方法当中_java中方法传入参数时:值传递还是址传递?

    JAVA中的数据类型有两大类型: ① 基本数据类型:逻辑型(boolean).文本型(char).整数型(byte.short.int.long).浮点型(float.double) ② 引用数据类型 ...

  7. python中的指针_python实现指针

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 例如,您可以这样做: a = ; a has an array b = & ...

  8. c语言在函数中传递指针,[求助]关于文件指针在函数中传递的问题

    [求助]关于文件指针在函数中传递的问题 我写的一个程序中文件指针在各函数间传递.请各位整理一下思路. /*=============================================== ...

  9. python为什么没有指针_Python中有指针吗?

    如果您曾经使用过C或C ++等低级语言,那么您可能已经听说过指针.指针允许您在部分代码中创建高效率.它们也会给初学者带来困惑,并且可能导致各种内存管理错误,即使对于专家也是如此.那么在Python中有 ...

  10. 字符串指针的地址的传递

    字符串指针的地址的传递 #include <iostream>using namespace std;void change(char **a) {(*a)++; }int main() ...

最新文章

  1. Erlang和Ruby的Socket通讯
  2. ASP.NET MVC 实现模式 - ModelBuilder
  3. UVA 11178 Morley’s Theorem(莫雷定理 计算几何)
  4. [POJ 3155] Hard Life
  5. web.py——运行错误【AttributeError: ‘StaticApp‘ object has no attribute ‘directory‘】
  6. CentOS 6.5 安装Python 3.5
  7. 27.课时27.【Django模板】for标签使用详解(Av61533158,P27)
  8. leetcode 有效的数独
  9. Redis的三个框架:Jedis,Redisson,Lettuce
  10. paper reading: roi 区域对人脸测试心率有用
  11. Ajax学习笔记-JQuery中的Ajax
  12. 恢复win7开机动画
  13. 网络暴利行业,天龙私服赚千万是不是梦想?
  14. 段地址x16+偏移地址=物理地址的本质含义
  15. 秒变“女装大佬”!Snapchat推出性别转换滤镜,离线实时渲染(附测评)
  16. 数据库的研究内容主要有哪些方面?
  17. 股票市场量化分析matlab,(特价书)MATLAB金融算法分析实战:基于机器学习的股票量化分析...
  18. 隐马尔可夫模型(一):模型介绍
  19. 饱受争议的闪电网络,能在2020年迎来大爆发吗?
  20. 【Uva 10118】Free Candies

热门文章

  1. Codeforces Round #352 (Div. 1) B. Robin Hood
  2. junit单元测试报错Failed to load ApplicationContext,但是项目发布到tomcat浏览器访问没问题...
  3. java学习 hibernate 持久态和瞬时态
  4. 未能创建可接受的游标。
  5. C++ enum类型的一个更好的用法
  6. TreeList(一)
  7. 如何排查Oracle表空间不足问题
  8. Linux内核管理子系统和进程管理子系统
  9. C#虚基类继承与接口的区别
  10. js 获取页面高度和宽度(兼容 ie firefox chrome),获取鼠标点击位置