精通python要多久-精通python 或者R语言大约需要多长时间?怎样算精通?

谢邀!这个问题其实蛮难回答的,因为我还不是精通人士。

要想精通一门语言,三件事是必备的:

1.爱它并全身心投入使用;

2.使用并用过很多次;

3.使用过程中,每次用追求一个大的变化;

要想精通python,写的代码首先得pythonic,自己闭门造车肯定不行,肯定需要研读牛B的开源代码,在这过程中会遇到python的许多高阶用法

1.装饰器 装饰器在框架中运用的很多,比如flask_login,要精通至少很随意的写出满足需求的装饰器,用装饰器肯定需要functools模块的支持

2.生成器 说道生成器就自然地联系到各种推导式(列表,元祖,字段,集合),那肯定也要提到itertools模块,contextlib标准库中是个典范,说到contextlib就需要提到with协议,迭代器协议,以及标准库中的哪些实现了它们,如文件描述符,线程锁,继续延伸的话需要了解greenlet提供的协程,那就不得不提gevent,eventlet

3.描述符 这你就得知道所有的函数其实都是描述符,property,classmethod,staticmethod都是通过描述符实现的,那就得提到werkzeug和bottle都提供的cached_property,都是访问属性的就得提到__getattr__和__getattribute__,知道在合适的时候定义合适的方法简化流程

4.元类 其实这玩意用处很大,如sqlalchemy,django的orm中field的定义都用到了它,那你得知道当python解析py时,发现__metaclass__的时候就会调用元类的__new__和__init__,如果你理解元类的__new__和__init__的第一个参数都是类(而不是self)那元类就差不多了

5.多线程 虽说python由于gil的限制不能利用多核,但在处理io密集型的任务还是有很大好处的,

那得知道threading.RLock是线程可重入锁,daemon thread的用处(python执行环境会等待所有非daemon thread的结束),Queue是线程安全的锁,logging是线程安全的日志模块,还有线程池也要熟悉

6.其它 如python2,6/7包含了不少新特性,如abc模块的抽象方法机制,collections提供的有用容器,python中的编码问题,super为啥需要两个参数,而3不需要参数,经典的闭包问题,NotImplemented和NotImplementedError的区别,多继承的mro问题,相对导入原理(__name__,如果看最新开源代码,基本都是相对导入)......

其实还有很多,但更多的是和业务相关,比如正则表达式,那至少得知道贪婪,非贪婪,命名组等。搞服务器开发,socket,twisted,gevent肯定要精通。搞web开发,django,flask,tornado得熟

你想更深入了解学习Python知识体系,你可以看一下我们花费了一个多月整理了上百小时的几百个知识点体系内容:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值