Head First Python chapter 4 学习笔记

chapter 4

1. 自定义模块安装到site-pakages

解释器在查看模块时,会从以下3个主要位置搜索模块:

  1. 当前工作目录
  2. 解释器的site-pakages的位置(包含了已安装的第三方Python模块,也包括自己写的)
  3. 标准库位置

使用setuptools安装模块到site-pakages

  • 1. 创建一个发布描述
  • 在要发布的文件的同一个文件夹下建立setup.py和README.txt文件
from setuptools import setup


setup(
    name='发布的包的名字',
    version='1.0', # 版本号后续重新发布时,更新
    description='描述',
    author='作者',
    author_email='作者邮箱',
    url='xxx.com',
    py_modules=['要发布的.py文件'],  # 这个包中的所有.py文件列表
)
  • 2. 生成一个发布文件
    在文件的文件夹打开命令行
py -3 setup.py sdist

在sdist文件夹中会有个新创建的可安装的压缩文件(.zip或.tar.gz)

  • 3. 安装发布文件。
  • 使用pip安装包
    在安装包的文件夹位置打开命令行
py -3 -m pip install 你的安装包
  • 4. 共享代码
  • 将安装包分享给他人
  • PyPI正式共享

2. Python函数传参

Python的函数传参是按值传递的还是按引用传递的?

按值参数传递 是指使用一个变量的值来取代一个函数参数的做法。如果这个值在函数代码组中改变,对于调用这个函数的代码来说,其中相应的变量值并不会受到任何影响。可以把这个参数认为是原变量值的一个副本。
按引用参数传递(按地址参数传递)则不同,对于调用这个函数的代码,会维护这个代码中变量的一个链接。如果函数代码组中的变量改变,那么在调用这个函数的代码中,相应的变量值也会改变。可以把这个参数认为是原变量的一个别名。
– 《Head First Python》

Python的变量都是对象引用,所以其函数调用本质上是按对象引用调用。而python的函数参数调用,会依据参数的数据类型,来选择是按值还是按引用来调用。

  • 对于不可变(字符串、整数和元组),按值传递
  • 对于可变(列表、字典和集合)按引用传递

3. PEP8 兼容性

PEP8 – Python风格指南

  1. 安装pytest和PEP8插件
py -3 -m pip install pytest  # 安装pytest
py -3 -m pip install pytest-pep8  # 安装pep8
  1. 检测PEP8兼容性
py.test --pep8 file_to_test.py

你可能感兴趣的:(笔记)