Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >python:命名具有两个单词名称的模块。

python:命名具有两个单词名称的模块。
EN

Stack Overflow用户
提问于 2010-05-17 11:56:57
回答 4查看 51.6K关注 0票数 86

我正在尝试将一个包含一个.py源文件的非常简单的模块组合在一起,并且已经遇到了一个障碍。我本来打算叫它scons-config,但import scons-config在Python中不起作用。我找到了这个问题,看了看PEP8风格指南,但有点困惑,它不谈两个字的名字约定。

处理这件事的正确方法是什么?

  • 模块名称: SconsConfig?scons_config?斯克瑞配置?scons.config?
  • 其中单个.py文件的名称:skes-config.py?scons_config.py?

编辑:我确实看到了“不鼓励使用下划线”,这让我陷入了死胡同:我应该使用"sconsconfig“还是"scons_config”(我猜其他的已经过时了)?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-05-17 12:00:00

如果有必要,请始终使用下划线_

使用点.甚至不能工作,否则

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from scons.config import whatever

就会崩溃。

但是PEP 8清楚地描述了它:

包和模块名称 模块应该有短的、全小写的名称.如果下划线提高了的可读性,则可以在模块名中使用。Python 包也应该有短的、全小写的名称,尽管使用下划线是不鼓励的。

更新:

直接针对你的问题:我认为sconsconfig很好。它不是太长,也不是很可读的。

但是老实说,如果您使用下划线,并且您的代码将与任何一个决定一起运行,我认为没有人会责怪您。总有一定的水平,你不应该再关心那么多。

票数 96
EN

Stack Overflow用户

发布于 2010-05-17 12:08:00

首先,模块名与单个.py文件的名称相同。在Python中,几个.py文件的集合是一个包。

PEP-8不鼓励用下划线分割包名。在我的站点包目录中,一个快速的峰值显示多个单词名称通常只是一起运行(例如setuptools,sqlalchemy)。

模块名称(即文件名)可以用下划线来划分(我通常会这样做,因为我讨厌一起运行的名称-您可以硬地读它们)。

只使用小写( PEP-8)。这避免了从区分大小写到不区分大小写的文件系统的问题,反之亦然。

票数 23
EN

Stack Overflow用户

发布于 2016-04-19 02:59:26

除了PEP-8之外,您还可以查看原生Python模块是如何处理这个问题的。

如果您要将Python 2的本机模块Python 3进行比较,您会发现官方开发人员的新趋势是避免大写和下划线。例如,Python2中的ConfigParser在Python3中变为configparser

考虑到这一点,最好的做法是避免大写和下划线,只需将单词连接在一起,即sconsconfig

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2852283

复制
相关文章
[译] 为什么String在Java中是不可变的
String 在 Java 中是不可变的。 不可变类只是一个无法修改其实例的类。 创建实例时,将初始化实例中的所有信息,并且无法修改信息。 不可变类有许多优点。 本文总结了为什么 String 设计为不可变的。 这篇文章从内存,同步和数据结构的角度说明了不变性概念。
haifeiWu
2020/02/10
1.3K0
jsp中在href中传递参数
<% Configuration conf = new Configuration(); URI uri = new URI("hdfs://192.168.0.52:9010"); FileSystem fileSystem = FileSystem.get(uri, conf); //System.out.println("Hdfs directory is"+"\n"); Path src1 = new Path("hdfs://192.168.0.52:9
闵开慧
2018/03/30
4.7K0
什么是线程组,为什么在 Java 中不推荐使用?
线程组是使用 Java 线程进行管理和组织的一种模型。Java 中的线程组是一个 ThreadGroup 类对象,它充当了一个父容器,可以将同一类线程分成一组,并提供追踪这些线程状态、统计信息及管理这些线程的方法。在线程组中,如果发生未捕获异常,可以通过 Thread.UncaughtExceptionHandler 进行处理。
用户1289394
2023/08/22
3380
什么是线程组,为什么在 Java 中不推荐使用?
在 Vue 中,使用 $attrs 构建高级组件
这节课,我们来看下 Vue3 中的 $attrs 属性。首先,我们会介绍它的用途以及它的实现与 Vue2 有哪些不两同点,并通过事例来加深对它的理解。
前端小智@大迁世界
2022/10/27
2.5K0
在 Vue 中,使用 $attrs 构建高级组件
我是这样在 React 中实践 TDD 编程的
在Redux中编写测试听起来肯定有悖直觉。如果你使用了Redux,它可能看起来更加复杂。
前端修罗场
2022/07/29
2K0
在gradle中构建java项目
之前的文章我们讲到了gradle的基本使用,使用gradle的最终目的就是为了构建java项目。今天本文将会详细的讲解如何在gradle中构建java项目。
程序那些事
2021/02/20
1.8K0
在gradle中构建java项目
之前的文章我们讲到了gradle的基本使用,使用gradle的最终目的就是为了构建java项目。今天本文将会详细的讲解如何在gradle中构建java项目。
程序那些事
2021/02/25
1.3K0
在gradle中构建java项目
之前的文章我们讲到了gradle的基本使用,使用gradle的最终目的就是为了构建java项目。今天本文将会详细的讲解如何在gradle中构建java项目。
子润先生
2021/06/21
1.7K0
在 Gitlab 中构建 Docker 镜像
有了 Gitlab CI 的脚本能力,又有容器镜像仓库的支持,自然的一个想法就是,在 Gitlab 上构建容器镜像,并推送到镜像仓库之中。
崔秀龙
2019/07/22
2.3K0
在 Gitlab 中构建 Docker 镜像
为什么在静态方法中不能使用this
在JVM的运行时数据区中有个虚拟机栈(或Java栈),在它的里面是由栈帧'叠加'而成.栈帧由局部变量表,操作数栈,动态连接,方法返回地址等组成.
书唐瑞
2022/06/02
1.9K0
为什么在静态方法中不能使用this
我在ThoughtWorks中的敏捷实践
E项目是一个在线的物资跟踪监控系统。由ThoughtWorks团队为客户提供的一套完善的软件交付服务。
袁慎建@ThoughtWorks
2018/09/29
2.1K0
我在ThoughtWorks中的敏捷实践
python2中为什么在进行类定义时最好
Person类很明显能够看出区别,不继承object对象,只拥有了doc , module 和 自己定义的name变量, 也就是说这个类的命名空间只有三个对象可以操作. Animal类继承了object对象,拥有了好多可操作对象,这些都是类中的高级特性。
py3study
2020/01/09
1.2K0
我应该使用 PyCharm 在 Python 中编程吗?
Python 是一种广泛使用的编程语言,以其简单、多功能和庞大的开发人员社区而闻名。这个社区不断创建新的库和工具,以提高Python编程的效率和便利性。选择正确的环境来编写和调试 Python 代码可能具有挑战性,但 PyCharm 是一个很好的选择,从其他选项中脱颖而出。
很酷的站长
2023/02/20
4.7K0
我应该使用 PyCharm 在 Python 中编程吗?
在LR中动态拼接参数的问题
在很多时候系统是提供了多选并且组合提交的操作,这个时候请求就需要动态拼接了,这里举个参考的例子给大家,希望能够让大家明白怎么回事。
TestOps
2022/04/04
2K0
在LR中动态拼接参数的问题
在java中构建高效的结果缓存
缓存是现代应用服务器中非常常用的组件。除了第三方缓存以外,我们通常也需要在java中构建内部使用的缓存。那么怎么才能构建一个高效的缓存呢? 本文将会一步步的进行揭秘。
程序那些事
2020/07/08
1.5K0
在React中如何使用history.push传递参数
第一种和第三种,在目标路由刷新后,参数还可以取到,但是第二种页面刷新后,参数就取不到了,第二种适合开发winform类的应用。
挥刀北上
2021/12/19
21.5K0
在React中如何使用history.push传递参数
React 必学SSR框架——next.js
F首先我们就回顾一下,我们到底是怎么告别了使用 php/jsp 做服务器端渲染,进入前后端分离的客户端渲染时代,又为什么重新回到了服务端渲染。
狂奔滴小马
2021/11/15
7.7K0
React 必学SSR框架——next.js
如何使用ParamSpider在Web文档中搜索敏感参数
ParamSpider是一款功能强大的Web参数挖掘工具,广大研究人员可以利用ParamSpider来从Web文档的最深处挖掘出目标参数。
FB客服
2020/09/14
3.7K0
如何使用ParamSpider在Web文档中搜索敏感参数
我在使用 Go 过程中犯过的低级错误
循环迭代器变量是一个在每次循环迭代中采用不同值的单个变量。如果我们一直使用一个变量,可能会导致不可预知的行为。
用户5166556
2023/03/18
2.1K0
我在使用 Go 过程中犯过的低级错误
在Pytorch中构建流数据集
在处理监督机器学习任务时,最重要的东西是数据——而且是大量的数据。当面对少量数据时,特别是需要深度神经网络的任务时,该怎么办?如何创建一个快速高效的数据管道来生成更多的数据,从而在不花费数百美元在昂贵
deephub
2020/12/11
1.2K0
在Pytorch中构建流数据集

相似问题

getInitialProps在Next.js中是什么

19

getInitialProps在Next.js中的条件执行

12

getInitialProps在Next.js与TypeScript中的应用

61

在Next.js中重定向getInitialProps时出现无限循环

157

next.js - getInitialProps在组件中不起作用

239
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文