设为首页 收藏本站
查看: 1131|回复: 0

[经验分享] 二、python基础之核心风格

[复制链接]
YunVN网友  发表于 2018-8-15 12:07:36 |阅读模式
  目录
  一.语句和语法
  二.变量定义与赋值
  三.内存管理
  内存管理:
  引用计数:
  简单例子
  四.python对象
  五.标识符
  六.专用下划线标识符
  七.编写模块基本风格
  八.示范
  一.语句和语法
  #:注释
  \:转译回车,继续上一行,在一行语句较长的情况下可以使用其来切分成多行,因其可读性差所以不建议使用
  ;:将两个语句连接到一行,可读性差,不建议使用
  ::将代码的头和体分开
  语句(代码块)用缩进方式体现不同的代码级别,建议采用4个空格(不要使用tab)
  python文件以模块的方式组织,编写一个.py结尾的文件实际上就写了一个模块
  二.变量定义与赋值
  a=1:1为内存变量存放于内存中,a为变量的引用,python为动态语言,变量及其类型均无需事先声明类型
  与c的区别:a=1无返回值
  注:
  c语言变量声明必须位于代码最开始,而且要在所有语句之前
  c++,java可以随时随地声明变量,但是必须声明变量名字和类型
  python也可以随时随地声明变量,但是变量在被定义时,解释器会根据等式右侧的值来决定其类型
  变量必须先赋值,才可使用
  回到顶部
  三.内存管理
  内存管理:
  变量无须指定类型
  程序员无须关心内存管理
  变量会被自动回收
  del能够直接释放内存对象(减少对象的引用计数)
  回到顶部
  引用计数:
  增加引用计数
  对象被创建并将其引用赋值给变量,引用计数加1(例a=1)
  同一个对象的引用又赋值给其它变量,引用计数加1(例b=a)
  对象作为参数被函数调用,引用计数加1(例int(a)
  对象成为容器对象中的一个元素,引用计数加1(例list_test=['alex','z',a])
  减少引用计数
  a作为被函数调用的参数,在函数运行结束后,包括a在内的所有局部变量均会被销毁,引用计数减1
  变量被赋值给另外一个对象,原对象引用计数减1(例b=2,1这一内存对象的引用只剩a)
  使用del删除对象的引用,引用计数减1(例del a)
  a作为容器list_test中的一个元素,被清除,引用计数减少(例list_test.remove(a))
  容器本身被销毁(例del list_test)
  注意:python内存回收交给一段独立的代码即垃圾回收器(包含引用计数器和循环垃圾收集器),引用计数在归零时并不会立即清除(可能有循环调用)
  不必纠结循环引用收集,只需记住垃圾回收器帮你自动清理内存。
  例:
x=1 #创建内存变量1,将变量1的引用传给x,此刻1的引用计数为1  
y=x #1的引用计数增加到2
  

  

  
y=2 #创建新的内存变量2,将变量2的引用传给y,原本指向1的y,此刻给了2,所以1的引用计数减少到了1del x #删除了内存对象1的引用x,此刻1再无引用,此刻它就成了python解释器回收的目标
DSC0000.png

DSC0001.png

DSC0002.png

  四.python对象
  python中使用对象模型来存储数据,用来生成数据类型的工厂函数本质上是类,新建数据的结果本质是实例化一个对象
  对象有三种特性
  身份:内存地址,可以用id()确认,id相同的就是同一个对象
  类型:可以用type()查看,返回值的type也是对象
  值
  五.标识符
  定义:允许作为名字的有效字符串集合
  名字必须有实际意义,可读性好
  首字母必须是字母或下划线(_)
  剩下的字符可以是字母和数字或者下划线
  大小写敏感
  两种风格:conn_obj或ConnObj
  不能使用关键字,不能使用内建
  关键字表:
DSC0003.png

  六.专用下划线标识符
  _xxx:不能用from module import *导入
  __xxx__:系统定义名字
  __xxx:类中私有变量
  下划线对于解释器来说有特殊意义,而且是内建标识符所使用符号,不建议自定义变量以下划线开头
  但是如果是类中的私有变量,__xxx将会是一个好习惯
  补充:
  系统变量__name__会根据python文件被加载方式的不同得出不同的值
  python文件被当作模块导入:__name__=模块名或者文件名
  python文件被执行:__name__='__main__'
  在我们使用python编写一个软件时,应该只有一个主程序中包含大量顶级代码(就是没有缩进的代码,
  python解释器读取到顶级代码会立即执行),其他.py文件应该只有少量顶级代码,所有功能都应该封装
  在函数或类中
  通常在文件结尾结合__name__变量,编写测试代码
  七.编写模块基本风格
  1 标题
  2 文档注释
  3 模块导入
  4 变量定义
  5 类定义语句
  6 函数定义语句
  7 主程序
  8 测试代码
  八.示范
  #_*_coding:utf-8_*_
  #!/usr/bin/env python
  '''
  This is an example module
  '''
  import sys,os
  debug=True
  class Test:
  '''

  test>  '''
  pass
  def main():
  '''
  test func
  :return:
  '''
  pass
  if __name__ == '__main__':
  main()

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-552199-1-1.html 上篇帖子: (四)mac安装与配置 python的IDE-Lilier 下篇帖子: 三、python基础之条件和循环
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表