C++到Python学习浅谈

为什么要学Python

Python入门对大部分coder来说是很简单的事,因为Python实在是太优秀了,语法简洁易懂,同时还有很多的模块支撑。让我们可以把更多的精力放在业务而非造轮子上。我觉得无论是前端或者后端coder都应该学习Python。

  • python越来越火,在各个领域都能发挥其作用
  • C++写的socket客户端或者服务端程序可以用Python自测,效率高。
  • Python源码是开放的,阅读CPython能开阔视野。
  • 技多不压身,说不定哪天Python就是您的饭碗呢

C++程序员如何学Python

工欲善其事必先利其器,首先准备pycharm和visual studio2013工具环境

  • 学习python的语义、语法、函数、类、包、模块,掌握str list tuple dict 等属性和方法
    python和C++都是面向对象编程语言,这部分是很相近的,基本浏览一遍就可以了。

  • 再深入理解装饰器、迭代器、协程以及其是为了解决什么问题出现的。

  • 结合python源码剖析这本书和源码(用VS能直接编译的)从字节码一点点的看python虚拟机的运行,函数、类的创建、实例的创建等

  • 学习python标准库,一个一个的读标准库,这里面是python高质量的代码,这里面需要结合源码中c写的一些模块看,同时需要了解的知识也很多。

    例如threading.py模块,那需要结合_threadmodule.c,知道python互斥锁、递归锁、信号量、事件、线程是如何实现的

    socket.py模块结合 socketmodule.c,清楚python socket的底层实现,socket读写、accept、listen、超时等如何实现超时。因为这些server.py模块的基础

    select.py模块需要懂得IO复用模型,select/epoll/poll等等,我不知道为什么windows下CPython没有用IOCP模型的原因,socket事件可读、可写、异常等异步IO编程方式,是server.py模块的基础。

    最让我震撼的是asyncio异步IO结合协程能编写高效率的服务器程序,在以往C++开发服务器程序中大部分都是一个连接请求一个线程(但是连接多了问题就暴露的多了)、可能再好一点的是异步IO(如boost::asio库),但是这些用C++写起来确实很蛋疼。

    标准库读的多了,遇到的问题就很多了,例如abc抽象基类、元类、自定义元类,然后再结合CPython源码寻找答案。

    重写的__***___函数是如何覆盖掉CPython本身定义的slot的等
    说的比较杂,希望自己也再接再厉,克服困难,把Python变成自己的武器

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值