为什么 Python 将制表符视为 8 个空格?

2024-03-31

使用 4 个空格的制表符宽度已成为编程中的主要选择。那么为什么 Python 不将制表符视为 4 个空格而不是 8 个空格呢?

这个设计决定有(技术、历史、其他)原因吗?感觉这可以让开发人员免于因缩进不一致而苦苦挣扎。


由于Linux控制台中默认的制表符大小是8个空格,因此Linux中的大多数CLI文本编辑器也默认为8个空格。大多数也是可配置的,但多年来它一直是默认设置。

Some 较旧的 (C) 代码 https://github.com/alexmchale/merc-mud/blob/master/src/comm.c使用混合缩进来伪造 4 个空格制表符 - 1 个缩进 == 4 个空格,2 个缩进 == 1 个制表符,3 个缩进 == 1 个制表符 + 4 个空格,等等......太糟糕了。不确定这是否是故意这样做的,以便使代码更易于阅读,或者是否某些编辑器自动执行此操作以模拟 4 个空格选项卡。我所知道的是,我正在使用 pico,它是一个与这些一起工作的 PITA,特别是当你需要缩进/缩进整个块时。 :)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Python 将制表符视为 8 个空格? 的相关文章

  • 保存为 HDF5 的图像未着色

    我目前正在开发一个将文本文件和 jpg 图像转换为 HDF5 格式的程序 用HDFView 3 0打开 似乎图像仅以灰度保存 hdf h5py File Sample h5 img Image open Image jpg data np
  • 中断 Select 以添加另一个要在 Python 中监视的套接字

    我正在 Windows XP 应用程序中使用 TCP 实现点对点 IPC 我正在使用select and socketPython 2 6 6 中的模块 我有三个 TCP 线程 一个读取线程通常会阻塞select 一个通常等待事件的写入线程
  • 为什么从 Pandas 1.0 中删除了日期时间?

    我在 pandas 中处理大量数据分析并每天使用 pandas datetime 最近我收到警告 FutureWarning pandas datetime 类已弃用 并将在未来版本中从 pandas 中删除 改为从 datetime 模块
  • Django 的内联管理:一个“预填充”字段

    我正在开发我的第一个 Django 项目 我希望用户能够在管理中创建自定义表单 并向其中添加字段当他或她需要它们时 为此 我在我的项目中添加了一个可重用的应用程序 可在 github 上找到 https github com stephen
  • 使用特定的类/函数预加载 Jupyter Notebook

    我想预加载一个笔记本 其中包含我在另一个文件中定义的特定类 函数 更具体地说 我想用 python 来做到这一点 比如加载一个配置文件 包含所有相关的类 函数 目前 我正在使用 python 生成笔记本并在服务器上自动启动它们 因为不同的
  • 元组有什么用?

    我现在正在学习 Python 课程 我们刚刚介绍了元组作为数据类型之一 我阅读了它的维基百科页面 但是 我无法弄清楚这种数据类型在实践中会有什么用处 我可以提供一些需要一组不可变数字的示例吗 也许是在 Python 中 这与列表有何不同 每
  • 在 django ORM 中查询时如何将 char 转换为整数?

    最近开始使用 Django ORM 我想执行这个查询 select student id from students where student id like 97318 order by CAST student id as UNSIG
  • 用枢轴点拟合曲线 Python

    我有下面的图 我想用 2 条线来拟合它 使用 python 我设法适应上半部分 def func x a b x np array x return a x b popt pcov curve fit func up x up y 我想用另
  • 使用 kivy textinput 的 'input_type' 属性的问题

    您好 我在使用 kivy 的文本输入小部件的 input type 属性时遇到问题 问题是我制作了两个自定义文本输入 其中一个称为 StrText 其中设置了 input type text 然后是第二个文本输入 名为 NumText 其
  • 如何添加带有外部链接的自定义选项卡按钮?

    使用 Mediawiki 1 19 并希望在选项卡按钮 页面 和 讨论 旁边添加带有外部链接的选项卡 怎么做 Extension DynamicTabs 不起作用 因为它在矢量皮肤方面存在问题 步入常见问题解答 如何在我的 wiki 中添加
  • Python zmq SUB 套接字未接收 MQL5 Zmq PUB 套接字

    我正在尝试在 MQL5 中设置一个 PUB 套接字 并在 Python 中设置一个 SUB 套接字来接收消息 我在 MQL5 中有这个 include
  • datetime.datetime.now() 返回旧值

    我正在通过匹配日期查找 python 中的数据存储条目 我想要的是每天选择 今天 的条目 但由于某种原因 当我将代码上传到 gae 服务器时 它只能工作一天 第二天它仍然返回相同的值 例如当我上传代码并在 07 01 2014 执行它时 它
  • 如何在 Python 中解析和比较 ISO 8601 持续时间? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 Python v2 库 它允许我解析和比较 ISO 8601 持续时间may处于不同单
  • Python,将函数的输出重定向到文件中

    我正在尝试将函数的输出存储到Python中的文件中 我想做的是这样的 def test print This is a Test file open Log a file write test file close 但是当我这样做时 我收到
  • 如何使用 Mysql Python 连接器检索二进制数据?

    如果我在 MySQL 中创建一个包含二进制数据的简单表 CREATE TABLE foo bar binary 4 INSERT INTO foo bar VALUES UNHEX de12 然后尝试使用 MySQL Connector P
  • Numpy - 根据表示一维的坐标向量的条件替换数组中的值

    我有一个data多维数组 最后一个是距离 另一方面 我有距离向量r 例如 Data np ones 20 30 100 r np linspace 10 50 100 最后 我还有一个临界距离值列表 称为r0 使得 r0 shape Dat
  • 加快网络抓取速度

    我正在使用一个非常简单的网络抓取工具抓取 23770 个网页scrapy 我对 scrapy 甚至 python 都很陌生 但设法编写了一个可以完成这项工作的蜘蛛 然而 它确实很慢 爬行 23770 个页面大约需要 28 小时 我看过scr
  • import matplotlib.pyplot 给出 AttributeError: 'NoneType' 对象没有属性 'is_interactive'

    我尝试在 Pycharm 控制台中导入 matplotlib pyplt import matplotlib pyplot as plt 然后作为回报我得到 Traceback most recent call last File D Pr
  • 如何在 pygtk 中创建新信号

    我创建了一个 python 对象 但我想在它上面发送信号 我让它继承自 gobject GObject 但似乎没有任何方法可以在我的对象上创建新信号 您还可以在类定义中定义信号 class MyGObjectClass gobject GO
  • 使用for循环时如何获取前一个元素? [复制]

    这个问题在这里已经有答案了 可能的重复 Python 循环内的上一个和下一个值 https stackoverflow com questions 1011938 python previous and next values inside

随机推荐

  • Matter.js 用于碰撞检测

    我对在这里提问还比较陌生 所以请耐心等待 我正在尝试使用 Matter js 作为主要物理引擎创建一个自上而下的驾驶游戏 我希望红色汽车与绿色方块相撞 然而 我仍然坚持知道如何在我的游戏中实现 Matter js 任何形式的回应将不胜感激
  • 如何在 R 中创建具有特定间隔的向量?

    我有一个关于创建向量的问题 如果我做a lt 1 10 a 的值为 1 2 3 4 5 6 7 8 9 10 我的问题是如何创建一个元素之间具有特定间隔的向量 例如 我想创建一个具有从 1 到 100 的值的向量 但仅以 5 为间隔进行计数
  • 如何将config.properties转换为键值对?

    我正在尝试将 java 属性文件转换为可以在 jquery 中使用的键值对 属性文件发送如下所示的信息 company1 Google company2 eBay company3 Yahoo 我想要这种形式 var obj company
  • Flutter - 主动检查是否按下了特殊键(如 ctrl)

    Question How to actively check if a certain decoration key is pressed like CTRL or SHIFT like if SomeKeyboardRelatedServ
  • 在 Spring Boot 应用程序的生产中使用 Tomcat

    作为 Spring Boot 的新手 我需要了解以下内容 因为我无法直接找到谷歌结果 他们在现实生活中真正使用哪些应用程序服务器来部署这些 Spring Boot 应用程序 Tomcat 真的被公司使用吗 如果是的话 他们是通过集群来实现的
  • 在 WCF 代理中实现 Ws 安全

    我已将基于轴的 wsdl 导入到 VS 2008 项目中作为服务参考 我需要能够传递安全详细信息 例如用户名 密码和随机数值 来调用基于轴的服务 我已经考虑过为 wse 做这件事 我知道世界讨厌它 那里没有问题 我对 WCF 的经验很少 但
  • 如何更新StackPanel的布局?

    问题是 如果您单击按钮并展开电话号码 堆栈面板和边框会展开 这很好 但如果您折叠它 堆栈面板和边框不会折叠
  • 使用 Robolectric 更改配置

    为了在配置更改时保留 AsyncTasks 我使用基于片段的解决方案和 setRetainInstance true 它托管每个 AsyncTask 并回调侦听 Activity 类似于此解决方案http www androiddesign
  • Typescript 属性“property”在类型“void | ”上不存在样本

    根据打字稿void is a 超类型 https www typescriptlang org docs handbook basic types html void of the null and undefined类型 因此 具有 vo
  • Silverlight 3.0 - 如何从 UserControl 访问 MainPage 控件值

    我需要从 MainPage 检索一些控件值到 UserControl 在此 UserControl 中 我需要能够获取 Frame ActualWidth 和 Frame ActualHeight 值 在本例中 Frame 元素位于 Mai
  • 如何在普通的非Android Java应用程序中使用NDK编译的JNI库?

    我有一个 JNI 库 供 Android 应用程序与 NDK 一起使用 我没有源代码 只是为某些拱门编译了 so 文件 我想在 64 位 x86 Linux PC 上的简单控制台 Java 应用程序中调用该库中的函数 我做了什么 我从 x8
  • Google Spanner 中的 TrueTime API 是什么?

    我多次尝试阅读该文档 但未能理解它 有人可以用通俗的语言解释一下吗 TrueTime 是 Google 提供的一个 API 可直接暴露时钟不确定性 相比标准日期时间库 https docs python org 2 library date
  • 如何取消使用锚标记放置的复选框的分组

    我们在文档中使用 AnchorTags 将签名元素放入 PDF 文档中 到目前为止 诸如 SignHere 之类的签名元素已按预期工作 每个签名只需单击一下 即可正确放入文档中 我们现在尝试使用 AnchorTags 将复选框添加到这些文档
  • 使用 GORM 在 MySQL 中获取 NULL 日期时间值

    我想获取最后一个 Visit details 行 其 out time 为NULL使用戈尔姆 NIL本身是一种类型 其中 VisitDetail OutTime 是mysql NullTime Code var visitDetail mo
  • 使用 OR 条件左连接两个 R 数据框

    Problem 我有两个数据框 我想使用三个非数字变量的条件语句来连接它们 这是我想要实现的伪代码版本 Join DF1 and DF2 on DF1 A DF2 A DF1 A DF2 B Dataset 这是创建两个数据框的一些代码 v
  • 使用 PHP 更新 AD 密码的问题

    您好 我编写了以下脚本来更新特定用户的密码
  • Apache Flink - 作业内部无法识别自定义 java 选项

    我已将以下行添加到 flink conf yaml 中 env java opts Ddy props path PATH TO PROPS FILE 启动 jobmanager jobmanager sh start cluster 时
  • 编译器优化导致程序崩溃

    我正在用 C Qt 编写一个程序 其中包含图形文件解析器 我用g 编译项目 在开发过程中 我不断比较有关优化和调试信息的不同编译器标志之间的低级解析器层的性能 以及 Qt 的调试标志 打开 关闭 qDebug 和 Q ASSERT 现在我面
  • 解析 NSURL mailto

    如何解析 mailto 请求 mailto email protected cdn cgi l email protection email protected cdn cgi l email protection subject This
  • 为什么 Python 将制表符视为 8 个空格?

    使用 4 个空格的制表符宽度已成为编程中的主要选择 那么为什么 Python 不将制表符视为 4 个空格而不是 8 个空格呢 这个设计决定有 技术 历史 其他 原因吗 感觉这可以让开发人员免于因缩进不一致而苦苦挣扎 由于Linux控制台中默