python综合设计问题_Python 设计和历史的 27 个问题(2)
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)相关推荐
- python课程设计计算器_Python设计实现的计算器功能完整实例
本文实例讲述了Python设计实现的计算器功能.分享给大家供大家参考,具体如下: 通过利用PYTHON 设计处理计算器的功能如: 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/ ...
- python综合实验报告_Python程序设计实验报告五:综合运用三种基本结构进行程序设计(综合性实验)...
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名姚彩琴学号3190505129 成绩 日期 2020.4.22 指导老师修宇 [实验名称]综合运用三种基本结构进行程序设计(综合性实 ...
- python综合实验报告_Python程序设计 实验报告
安徽工程大学 Python程序设计 实验报告 班级:物流192 姓名:刘马汉卿学号:319005211 成绩: 日期:2020年4月29日 指导老师:修 ...
- python处理行情数据_Python获取股票历史、实时数据与更新到数据库
要做量化投资,数据是基础,正所谓"巧妇难为无米之炊" 在免费数据方面,各大网站的财经板块其实已提供相应的api,如新浪.雅虎.搜狐...可以通过urlopen相应格式的网址获取数据 ...
- python综合案例分享_Python面向对象 三大特性 综合案例+1(视频里的作业)
class Dog: # 在创建一个小狗实例的时候,给它设置几个属性 def __init__(self, name, age = 1): self.name = name self.age = ag ...
- python综合作业题目_python作业 1、2、3 题
第一题: import math import turtle RADIUS = 100 angleSin18 = math.sin(math.pi * 0.1) * RADIUS angleCos18 ...
- python中类型错误、计数不采用关键字的错误怎么改_Python设计错误
你要求链接或其他来源,但实际上没有.这些信息散布在许多不同的地方.什么才是真正构成设计错误的因素?您是只考虑语言定义中的语法和语义问题,还是包括诸如平台和标准库问题以及特定实现问题等实用问题?您可以说 ...
- python为什么需要编辑器_Python是个什么鬼?为什么设计大牛都在学它?!
"什么?!设计还要学这玩意 ?" 上周,约一朋友出去吃饭,没想到她居然在学Python. 然而,这还不是最令我感到惊讶的-- 我这朋友是做景观设计的,一毕业就进了设计院,每天忙得疯 ...
- python飞机大战设计思路_python飞机大战pygame游戏背景设计详解
本文实例讲述了python飞机大战pygame游戏背景设计.分享给大家供大家参考,具体如下: 目标 背景交替滚动的思路确定 显示游戏背景 01. 背景交替滚动的思路确定 运行 备课代码,观察 背景图像 ...
最新文章
- QNX设置开机启动命令来修改IP地址
- 大数据可视化设计到底是啥,该怎么用
- 甜甜圈和拓扑学也有关系,你想的到吗?
- JQuery EasyUI DataGrid
- PhpSpreadsheet如何读取excel文件
- 李笑来《财富自由之路》思维导图
- java通过url获取网页内容_java通过url获取网页内容
- windows系统禁止屏幕旋转快捷键
- Japanese的意思
- struts2与常用表格ajax操作的json传值问题
- (Linux目录操作命令)零基础小白学习_入门到精通03 程序员阿沐
- linux服务器如何查看mac地址,linux如何查看mac地址_查看mac地址 linux_linux查看mac地址...
- ionic安卓打印终极解决方案,支持USB打印
- Code For Better 谷歌开发者之声——使用谷歌浏览器 Chrome 更好地调试
- 中兴手机数据通道打不开_中兴td-lte无线数据终端闪着绿灯 但是上不了网是怎么回事...
- 【阿里云镜像】安装编译Apache环境
- 曼哈顿距离及其应用场景/曼哈顿距离与欧氏距离的不同
- 基于角膜反射的学习心得
- vk和uview表单图片上传
- 大数据说话:怎样的程序员最抢手?
热门文章
- bzoj4820[SDOI2017]硬币游戏
- CSS3 animation动画,循环间的延时执行时间
- curl / libcURL ‘tailmatch()’ Cookie 信息泄露漏洞
- 北京科技大学计算机专业博导,北京科技大学计算机与通信工程学院-班晓娟
- Linux shell标准输入,标准输出,错误输出
- Django 3 配置日志器,时区,修改静态文件,创建应用
- 压缩的问题-----WriteUp
- MC新手入门(十三)------ 添加游戏角色
- php文件的上传与删除方法
- 能帮你找到网页设计灵感的16个网站