在python中的字面量简介以及调试和发布

本文涉及的产品
云原生网关 MSE Higress,422元/月
可观测可视化 Grafana 版,10个用户账号 1个月
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
简介: 【7月更文挑战第3天】本文介绍Python调试涉及统一str/unicode、pdb断点调试、依赖管理如`python3-devel`用于pycurl,发布流程含编译、删除源码、打包。常用内置魔法函数如`__iter__`、`__call__`。`chr()`和`ord()`处理Unicode与整数。字面量包括数字、浮点、复数和布尔值。

简介

本文提供python调试和发布流程的简介。

  • Python3变化:统一str和unicode,真除法,弃用某些魔法方法。
  • 断点调试:pdb模块用于交互式调试。
  • 依赖管理:如pycurl安装python3-devel
  • 发布流程:编译、删除源码、打包。
  • 内置魔法函数:__iter____call__等。
  • 二进制运算:chr()ord()用于Unicode字符和整数间转换。
  • 字面量:python中各个类型的二进制和默认值表示。

1 对象模型Python3和Python2.x之间的主要区别

Python3的string和unicode区别不复存在,因此unicode被取消 bytes加入进来(与

python2.7的strunicode行为类似),用于心的创建字节数组的内建方法

py3默认除法变成了true除法,因此div取消

coerce被取消,因为与其他魔法方法有功能重复
cmp 取消,与其他魔法方法功能重复
nonzero被重命名为 bool

2 断点

 1, 断点设置后,代码执行到该位置,程序挂起检查程序行为
 2, 异常断点,到达断点后要执行的操作
 3,  断点属性,达到断点时要执行的操作
      挂起策略,用于定义在遇到断点时是否必须挂起应用程序
      对其他断点的依赖,
      何时必须击中断点
 4   消息记录
    断点命中消息,命中断点时,控制输出一条日志消息
    堆栈跟踪 断点的堆栈跟踪将命中打印到控制台

 5 断点工具
    pdb 交互式代码调试,功能包括
        设置断点,单步调试,进入函数调试,查看当前代码,查看栈片段,动态改变变量的值
        进入pdb交互界面
    命令
        break 或b设置断点     
        continue 或c   继续执行
        list或l        查看当前代码段
        step或s        进入函数
        return或r      执行代码直到当前函数返回
        exit或q           中止并退出
        next或n         执行下一行
        pp             打印变量的值

3 pycurl的依赖问题

pycurl 需要contos 7安装python3-devel
具体过程pycurl-centos7

4 py编译 发布流程

  • 1,编译生成pyc文件,建议增加-O优选项

    python3 -O -m compileall -b .

  • 2, 删除py文件

       find . -name "*.py"|xargs rm -rf
    
  • 3, 删除pycache目录

       find . -name "__pycache__" |xargs rm -rf
    
  • 4, 打包 tar包

        cd ..
    tar -cjvf xxx.1.1.00.tar.bz2 xxx
    
  • 5, 或git push到仓库

      git push origin master:master
    

5 常用内置 魔法函数

iter # 在类中实现,可以直接对类进行迭代 类似于如下形式

            obj.next 或  next(obj)

call # 在对象直接 进行调用

            obj()

slate 为对象类 提供限制,只能赋予固定的属性名称

__qualname__  # 查看类和当前函数名

>>> D.f.__qualname__
 >>>   D.f#返回类和函数

通过类字典返回函数,不会 返回函数名

    >>> D.__dict__['f']
    <function D.f at 0x000001F6C6224670

通过类实例的点运算 查看函数 将直接返回函数

>>> d = D()
>>> d.f    
    <bound method D.f of <__main__.D object at 0x000001F6C5F42070>>

查看实例的函数对象

>>> d.f.__func__
<function D.f at 0x000001F6C6224670>
>>> d.f.__self__
<__main__.D object at 0x000001F6C5F42070>

6 内置函数 二进制运算

chr
    返回整数 i 的字符串格式,如 chr(97) 返回字符 'a' 是 ord的逆运算
    chr('8364') (欧元符号)返回  €
ord
    返回代表单个Unicode字符的 码点的整数,例如 ord('a')返回整数 97
    ord('€') (欧元符号)返回 8364 

7 字面量

字面量是以变量或常量给出的原始数据。在Python中,有多种类型的字面量,如下所示:

  • 数字字面量
    数字字面量是不可变的(不可更改)。数字字面量可以属于3种不同的数值类型:Integer,Float 和 Complex。
    a = 0b1010 #二进制字面量
    b = 100 #十进制字面量

  • Float 字面量
    float_1 = 10.5
    float_2 = 1.5e2

  • 复数 Complex 字面量
    x = 3.14j

print(a, b )
print(float_1 )
print(x, x.imag, x.real)

运行该程序时,输出为:

10 100
10.5 150.0
3.14j 3.14 0.0

我们将整数字面量分配给不同的变量。在这里,a是二进制字面量,b是十进制字面量。

当我们打印变量时,所有字面量 都将转换为 十进制值。

10.5 和 1.5e2 是浮点字面量。1.5e2 用指数表示,等于 1.5 * 102。

我们为变量x分配了一个复数字面量 3.14j 。然后,我们使用虚数字面量(x.imag) 和 实数字面量(x.real)来创建复数的虚部和实部。

  • 布尔字面量
    a = True + 4
    b = False + 10

    print(a,b)

    5, 10

布尔字面量 True 和 False。在Python中,True 表示值为1,False 表示值为0.

目录
相关文章
|
1月前
|
存储 JSON 监控
告别Print,使用IceCream进行高效的Python调试
本文将介绍**IceCream**库,这个专门用于调试的工具显著提升了调试效率,使整个过程更加系统化和规范化。
65 2
告别Print,使用IceCream进行高效的Python调试
|
2月前
|
网络协议 Java Linux
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
本文介绍了PyAV库,它是FFmpeg的Python绑定,提供了底层库的全部功能和控制。文章详细讲解了PyAV的安装过程,包括在Windows、Linux和ARM平台上的安装步骤,以及安装中可能遇到的错误和解决方法。此外,还解释了时间戳的概念,包括RTP、NTP、PTS和DTS,并提供了Python代码示例,展示如何获取RTSP流中的各种时间戳。最后,文章还提供了一些附录,包括Python通过NTP同步获取时间的方法和使用PyAV访问网络视频流的技巧。
455 4
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
|
2月前
|
程序员 PHP Python
Python3 简介
【10月更文挑战第8天】Python3 简介。
40 4
|
2月前
|
存储 关系型数据库 数据库
轻量级数据库的利器:Python 及其内置 SQLite 简介
轻量级数据库的利器:Python 及其内置 SQLite 简介
70 3
|
3月前
|
数据采集 算法 数据处理
Python中的列表推导式:简介与应用
【9月更文挑战第14天】本文旨在介绍Python中一种强大且简洁的构造列表的方法——列表推导式。我们将从基础语法入手,通过实例演示其用法,并探讨在数据处理和算法优化中的应用价值。文章将不包含代码示例,而是专注于概念理解和应用场景的描述,以促进读者对列表推导式的深入认识。
96 3
|
3月前
|
监控 Python Windows
python知识点100篇系列-pysnooper用于调试
PySnooper是一个便捷的Python调试工具,用于监控代码执行过程及局部变量的变化,替代繁琐的打印语句。作为GitHub上的热门开源项目,它通过装饰器自动记录代码执行细节。安装简便,支持多种平台,可通过pip安装。使用时,只需在目标函数上添加装饰器即可实时查看变量变化或将其记录至日志文件。此外,还支持使用with块对特定代码段进行调试。更多详细信息可参阅其官方使用文档。
python知识点100篇系列-pysnooper用于调试
|
3月前
|
JavaScript Java C语言
Python简介
Python简介。
21 4
|
4月前
|
JavaScript 前端开发 ice
简单实用,Python代码调试利器~
简单实用,Python代码调试利器~
57 4
简单实用,Python代码调试利器~
使用icecream优雅调试Python代码
在大型项目中,使用print()调试代码可能导致终端输出过多,难以分辨输出结果与代码的对应关系。为了更清晰地调试,可以采用Icecream库。通过使用Icecream,可以更有效地进行Python代码调试,同时保持代码的整洁性。
|
4月前
|
程序员 开发工具 Python
[oeasy]python0030_动态控制断点_breakpoints_debug_调试
[oeasy]python0030_动态控制断点_breakpoints_debug_调试
41 2