Marke 6年前

修改理由:

词语重复使用了

相关信息:


此投稿已在 6年前 合并。

内容修改:

红色背景 为原始内容

绿色背景 为新增或者修改的内容

OldNewDifferences
1  
21模块
32---------
43
 
5453
5554如果使用IDE编写和运行这些程序,请查找在菜单中为程序指定命令行参数的方法。
5655
57 
 56
5857当我们执行 `python module_using_sys.py we are arguments` 命令的时候,我们使用  `python` 命令行运行模块 `module_using_sys.py`。后面的字符串 `we are arguments` 被作为参数传递给模块。Python 会把这些参数储存在 `sys.argv` 变量里以供后续使用。
5958
6059记住,当前运行的模块名总储存在 `sys.argv` 列表的第一个元素中。所以执行以上语句后,`sys.argv[0]` 中存放着 `'module_using_sys.py'`,`'we'` 放在 `sys.argv[1]`, `'are'` 放在 `sys.argv[2]` 而 `'arguments'` 放在 `sys.argv[3]`。注意到 Python 中,数组索引从 0 开始计数而不是从 1 开始。
 
6261`sys.path` 是模块导入时要搜索的目录列表。我们可以看到 `sys.path` 的第一个字符串是空的,空字符串意味着当前目录也是 `sys.path` 的一部分,这与 `PYTHONPATH` 环境变量是相同的。这意味着你可以直接从当前目录下导入模块。不然你还需要把你要导入的模块放到 `sys.path` 中的一个目录里。
6362
6463注意:当前目录指的是你的程序启动的目录。你可以通过执行 `import os; print(os.getcwd())`,来查看你的程序的当前目录。
65 
 64
6665字节码文件 .pyc
6766------------------------
6867
 
8584
8685```
8786
88 
 87
8988
9089模块的 `__name__`
9190---------------------
 
119118
120119每一个 Python 模块都定义了各自的 `__name__`。如果其值为 `'__main__'`,这说明用户正在单独运行这个模块,这时我们可以进行合适的操作
121120
122 
 121
123122
124123创建你自己的模块
125124-----------------------
 
175174
176175`mymodule_demo2.py` 的输出和 `mymodule_demo.py` 是相同的。
177176
178 需要注意的是,如果如果导入 mymodule 的模块中已经被有一个 `__version__` 名称被声明了的话,那么这里就会产生命名冲突。这种情况是很可能出现的,因为一种常见的实践方式就是对每一个模块都使用这个名称来声明它自己的版本号。因此,尽管 `import` 语句可能会让你的程序代码稍微有点冗长,但是我们更加推荐你使用它。
 177需要注意的是,如果导入 mymodule 的模块中已经被有一个 `__version__` 名称被声明了的话,那么这里就会产生命名冲突。这种情况是很可能出现的,因为一种常见的实践方式就是对每一个模块都使用这个名称来声明它自己的版本号。因此,尽管 `import` 语句可能会让你的程序代码稍微有点冗长,但是我们更加推荐你使用它。
179178
180179你也可以使用:
181180
 
192191>
193192> Python 的指导原则之一,就是「显式优于隐式」。你可以运行 `import this` 来了解更多的相关内容。
194193
195 
 194
196195
197196`dir` 函数
198197------------------
 
246245注意 `dir` 函数 *对任* 何对象都有效。例如:`dir(str)` 会列出 `str` (String) 类的属性。
247246
248247还有一个 [`vars()`](http://docs.python.org/3/library/functions.html#vars) 函数,它有时能给你对象的属性和它们的值,但这个函数并不总是有效。
249 
 248
250249
251250程序包
252251--------
 
278277
279278程序包是分层组织模块的一种简便方式。你会在 [标准库](https://learnku.com/docs/byte-of-python/2018/stdlib) 中找到许多程序包的实例。
280279
281 
 280
282281
283282小结
284283-------