《Python 编程从新手到高手》知识点

背景

最近小编利用业余时间充电,细读了《Python 编程从新手到高手》这本书的部分章节,作者:【美】贾森·C. 麦克唐纳,其中确实藏了不少干货!一些之前未曾涉猎的知识点,这次也被一一解锁。整理出来部分内容,分享给大家一起学习交流,共同进步呀~ 📚✨

该书中文版的翻译还是差点意思,读起来不是很通顺

小编环境

import sys

print('python 版本:',sys.version.split('|')[0])
#python 版本: 3.11.11

Python中的变量:名称和值

原文中关于 变量 的描述:Python 用name(名称)和 value(值)来代替variable(变量)

  • 一个name指向一个value或object(对象),就像你的名字指向你一样。可能有多个name指向同一个value,就像你可能有一个名字和一个昵称
  • 一个value是内存中一个特定的数据实例
  • “变量”这个术语指代这两者的组合:一个name指向一个value
  • 名称有作用域,它们随着函数的出现而出现,随着函数的消失而消失,但是它们没有类型
  • 值有类型,但是没有作用域
  • 名称被绑定到值,而这些值存在于内存中,且有一些引用指向它们。你可以把一个名称绑定到任何你想要的值上,但是你只能对特定的值执行一些有限的操作

作者强调:虽然Python是一种动态类型的语言,但是Python仍然是一种强类型的语言。名称可以随意绑定到不同类型的值上面,但是任何值都是有类型的

类属性与类方法

  • 类属性属于类本身,而不属于某个实例。实际上,这意味着所有相关的类实例“共享”类属性。即使没有任何实例,类属性也依然存在
  • 类方法属于类,而不属于类的某个实例
@classmethod
def inform(cls, codeword):
    cls._codeword = codeword

以上代码在类方法上使用了@classmethod装饰器。类方法将类作为其第一个参数接收,因此第一个参数被命名为cls。该inform()类方法既可以直接在SecretAgent类上调用,也可以在任何SecretAgent实例(如fox)上调用。inform()对类属性_codeword所做的更改会出现在类本身及其所有实例上

要想处理任何数据文件,你需要获得一个流(又称文件对象或类文件对象),其提供读取和写入内存中的特定文件的方法。一般存在两种流:

  • 二进制流是所有流的基础,用来处理二进制数据(0和1)
  • 文本流则处理二进制文本的编码和解码

print 刷新

  • 指定参数:print('.', end='', flush=True),大家一般使用的方法
  • 全局的方法:如果需要所有的print()调用默认每次都刷新,可以在非缓冲模式下运行Python,只需要在调用程序时将-u选项传递给Python解释器即可,如python3 -u test.py

并发与并行

  • 并发(concurrency)是编程中的多任务处理:在多个任务之间快速分配程序的注意力
  • 并行(parallelism),并行是指多个任务同时发生
  • 有两种方法可以在Python中实现并发:线程、异步

重点是记住这2个英文单词,比如在hive sql中,任务在集群中运行,可以启动并行,set hive.exec.parallel=true;,中文翻译有时会忽略两者差异

历史相关文章


以上是自己实践中遇到的一些问题,分享出来供大家参考学习,欢迎关注微信公众号:DataShare ,不定期分享干货

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容