dir = r"\this\is\my\dos\dir\ "[:-1]

dir = "\\this\\is\\my\\dos\\dir\\"

为什么Python没有属性赋值的“with”语句?

Python有一个 'with' 语句,它封装了块的执行,在块的入口和出口调用代码。有些语言的结构是这样的:

with obj:

a = 1 # equivalent to obj.a = 1

total = total + 1 # obj.total = obj.total + 1

在Python中,这样的结构是不明确的。

其他语言,如ObjectPascal、Delphi和C++ 使用静态类型,因此可以毫不含糊地知道分配给什么成员。这是静态类型的要点 -- 编译器 总是 在编译时知道每个变量的作用域。

Python使用动态类型。事先不可能知道在运行时引用哪个属性。可以动态地在对象中添加或删除成员属性。这使得无法通过简单的阅读就知道引用的是什么属性:局部属性、全局属性还是成员属性?

例如,采用以下不完整的代码段:

def foo(a):

with a:

print(x)

该代码段假设 "a" 必须有一个名为 "x" 的成员属性。然而,Python中并没有告诉解释器这一点。假设 "a" 是整数,会发生什么?如果有一个名为 "x" 的全局变量,它是否会在with块中使用?如您所见,Python的动态特性使得这样的选择更加困难。

然而,Python 可以通过赋值轻松实现 "with" 和类似语言特性(减少代码量)的主要好处。代替:

function(args).mydict[index][index].a = 21

function(args).mydict[index][index].b = 42

function(args).mydict[index][index].c = 63

写成这样:

ref = function(args).mydict[index][index]

ref.a = 21

ref.b = 42

ref.c = 63

这也具有提高执行速度的副作用,因为Python在运行时解析名称绑定,而第二个版本只需要执行一次解析。

为什么 if/while/def/class语句需要冒号?

冒号主要用于增强可读性(ABC语言实验的结果之一)。考虑一下这个:

if a == b

print(a)

if a == b:

print(a)

注意第二种方法稍微容易一些。请进一步注意,在这个FAQ解答的示例中,冒号是如何设置的;这是英语中的标准用法。

另一个次要原因是冒号使带有语法突出显示的编辑器更容易工作;他们可以寻找冒号来决定何时需要增加缩进,而不必对程序文本进行更精细的解析。

为什么Python在列表和元组的末尾允许使用逗号?

Python 允许您在列表,元组和字典的末尾添加一个尾随逗号:

[1, 2, 3,]

('a', 'b', 'c',)

d = {

"A": [1, 5],

"B": [6, 7], # last trailing comma is optional but good style

}

有几个理由允许这样做。

如果列表,元组或字典的字面值分布在多行中,则更容易添加更多元素,因为不必记住在上一行中添加逗号。这些行也可以重新排序,而不会产生语法错误。

不小心省略逗号会导致难以诊断的错误。例如:

x = [

"fee",

"fie"

"foo",

"fum"

]

这个列表看起来有四个元素,但实际上包含三个 : "fee", "fiefoo" 和 "fum" 。总是加上逗号可以避免这个错误的来源。

允许尾随逗号也可以使编程代码更容易生成。

公众号【Python猫】, 本号连载优质的系列文章,有喵星哲学猫系列、Python进阶系列、好书推荐系列、技术写作、优质英文推荐与翻译等等,欢迎关注哦。

python综合设计问题_Python 设计和历史的 27 个问题(2)相关推荐

  1. python课程设计计算器_Python设计实现的计算器功能完整实例

    本文实例讲述了Python设计实现的计算器功能.分享给大家供大家参考,具体如下: 通过利用PYTHON 设计处理计算器的功能如: 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/ ...

  2. python综合实验报告_Python程序设计实验报告五:综合运用三种基本结构进行程序设计(综合性实验)...

    安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名姚彩琴学号3190505129 成绩 日期 2020.4.22 指导老师修宇 [实验名称]综合运用三种基本结构进行程序设计(综合性实 ...

  3. python综合实验报告_Python程序设计 实验报告

    安徽工程大学 Python程序设计 实验报告 班级:物流192       姓名:刘马汉卿学号:319005211 成绩:            日期:2020年4月29日        指导老师:修 ...

  4. python处理行情数据_Python获取股票历史、实时数据与更新到数据库

    要做量化投资,数据是基础,正所谓"巧妇难为无米之炊" 在免费数据方面,各大网站的财经板块其实已提供相应的api,如新浪.雅虎.搜狐...可以通过urlopen相应格式的网址获取数据 ...

  5. python综合案例分享_Python面向对象 三大特性 综合案例+1(视频里的作业)

    class Dog: # 在创建一个小狗实例的时候,给它设置几个属性 def __init__(self, name, age = 1): self.name = name self.age = ag ...

  6. python综合作业题目_python作业 1、2、3 题

    第一题: import math import turtle RADIUS = 100 angleSin18 = math.sin(math.pi * 0.1) * RADIUS angleCos18 ...

  7. python中类型错误、计数不采用关键字的错误怎么改_Python设计错误

    你要求链接或其他来源,但实际上没有.这些信息散布在许多不同的地方.什么才是真正构成设计错误的因素?您是只考虑语言定义中的语法和语义问题,还是包括诸如平台和标准库问题以及特定实现问题等实用问题?您可以说 ...

  8. python为什么需要编辑器_Python是个什么鬼?为什么设计大牛都在学它?!

    "什么?!设计还要学这玩意 ?" 上周,约一朋友出去吃饭,没想到她居然在学Python. 然而,这还不是最令我感到惊讶的-- 我这朋友是做景观设计的,一毕业就进了设计院,每天忙得疯 ...

  9. python飞机大战设计思路_python飞机大战pygame游戏背景设计详解

    本文实例讲述了python飞机大战pygame游戏背景设计.分享给大家供大家参考,具体如下: 目标 背景交替滚动的思路确定 显示游戏背景 01. 背景交替滚动的思路确定 运行 备课代码,观察 背景图像 ...

最新文章

  1. QNX设置开机启动命令来修改IP地址
  2. 大数据可视化设计到底是啥,该怎么用
  3. 甜甜圈和拓扑学也有关系,你想的到吗?
  4. JQuery EasyUI DataGrid
  5. PhpSpreadsheet如何读取excel文件
  6. 李笑来《财富自由之路》思维导图
  7. java通过url获取网页内容_java通过url获取网页内容
  8. windows系统禁止屏幕旋转快捷键
  9. Japanese的意思
  10. struts2与常用表格ajax操作的json传值问题
  11. (Linux目录操作命令)零基础小白学习_入门到精通03 程序员阿沐
  12. linux服务器如何查看mac地址,linux如何查看mac地址_查看mac地址 linux_linux查看mac地址...
  13. ionic安卓打印终极解决方案,支持USB打印
  14. Code For Better 谷歌开发者之声——使用谷歌浏览器 Chrome 更好地调试
  15. 中兴手机数据通道打不开_中兴td-lte无线数据终端闪着绿灯 但是上不了网是怎么回事...
  16. 【阿里云镜像】安装编译Apache环境
  17. 曼哈顿距离及其应用场景/曼哈顿距离与欧氏距离的不同
  18. 基于角膜反射的学习心得
  19. vk和uview表单图片上传
  20. 大数据说话:怎样的程序员最抢手?

热门文章

  1. bzoj4820[SDOI2017]硬币游戏
  2. CSS3 animation动画,循环间的延时执行时间
  3. curl / libcURL ‘tailmatch()’ Cookie 信息泄露漏洞
  4. 北京科技大学计算机专业博导,北京科技大学计算机与通信工程学院-班晓娟
  5. Linux shell标准输入,标准输出,错误输出
  6. Django 3 配置日志器,时区,修改静态文件,创建应用
  7. 压缩的问题-----WriteUp
  8. MC新手入门(十三)------ 添加游戏角色
  9. php文件的上传与删除方法
  10. 能帮你找到网页设计灵感的16个网站