Python开发指南

[本文出自天外归云的博客园]

Python开发规范

代码规范

代码规范是最重要的一个点,写代码很容易,写好代码很难。涉及代码规范方面的问题,大家写代码的时候多注意下。

针对我们同学写python代码时经常出现的问题,总结了以下规范:

  1. 命名规范:
    1. 类名——驼峰方式命名,例:AnyClass。
    2. 方法名、变量名、模块名——全小写字母加下划线组成,例:any_method, any_variable。
  2. 代码格式化:提交的每一个代码文件都需要经过格式化,并推荐使用代码检查插件,养成好的编码习惯:black或pep8。
  3. 注释规划化:
    1. 注释中#后面要加空格,中文和英文之间要加空格,例:# 这是一个包含 en words 的注释。
    2. 标点符号统一用英文的标点符号,不用中文的标点符号。
  4. 常量化:一旦一个字符串值出现过两次及以上,就要提取成有意义的常量。常量名——全大写英文字母加下划线组成,例:ENV_NAME = "test"。
  5. 配置化:一些经常需要手动修改的常量值提取到配置系统中,例:ENV_NAME = get_from_apollo_conf("env_name")。
  6. 引用分组:自带库中模块引用一组、外部库中模块引用一组、公司内部库中模块引用一组、当前项目内部模块引用一组。
  7. 可读性(多花一些时间去思考如何命名是值得的):
    1. 方法名要和方法实现保持一致性原则。一些反例:
      1. 方法名为query_config(self),实际的动作为self.config = xxx,query应该改成init。
    2. 减少不必要的省略。例如:send_message不要省略为send_m。
    3. 类名和方法名要区分开:
      1. 类名一般以名词结尾。例如:XxxManager, XxxClient, XxxBuilder。
      2. 方法名一般以动词开头。例如:query_xxx, init_xxx, get_xxx, update_xxx, add_xxx。
  8. 职责单一:方法的实现要遵从高内聚、低耦合、职责单一原则。一些反例:
    1. 方法名为query_xxx,实际的逻辑为先初始化配置、再进行了一些操作对某些状态进行了更新、再查询了xxx,实际这个方法中包含了很多步骤,不只是query。既不满足一致性原则,也不满足职责单一原则。

日志规范

  1. 日志内容:
    1. 全部由小写英文字母+英文字符+空格组成,不使用中文及特殊格式的标点符号。
    2. 不使用连续的空格。
  2. 日志等级:
    1.  避免使用错误的级别输出日志。比如:用info级别的日志输出error信息。
      1. debug级别:记录调适性质的日志。比如:输入输出、接口返回值等。
      2. info级别:记录程序关键运行阶段以及关键状态变化的日志。
      3. warn级别:记录告警级别的日志。比如:走到了某个代码路径分支,虽然不代表错误,但需要引起重视。
      4. error级别:记录错误、异常级别的日志。
      5. fatal级别:记录崩溃性的日志。
  3. 日志时间格式(精确到毫秒):yyyy-MM-dd HH:mm:ss.SSS

Python环境部署

MacOS / CentOS

MacOS和CentOS系统下安装pyenv和python3.8.10过程如下:

# 下载 pyenv(如果被墙换国内地址,但要注意国内地址的 pyenv 一定要足够新版)
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
 
# 安装 pyenv 的通用方法
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrc
exec $SHELL
 
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.zshrc
exec $SHELL
 
# MacOS 下安装 pyenv 的快捷方法(但需要提前换好 brew 的国内源)
brew install pyenv
 
# 查看 pyenv 版本
pyenv version
 
# 跟随指引配置文件
pyenv init
 
# CentOS 下安装依赖
sudo su
yum install -y gcc make patch gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel ncurses-devel libffi-devel
 
# 下载 python 3.8.10 并移到 pyenv 缓存目录下(没有 wget 就在浏览器下载)
wget https://mirrors.huaweicloud.com/python/3.8.10/Python-3.8.10.tar.xz
mkdir ~/.pyenv/cache
mv Python-3.8.10.tar.xz ~/.pyenv/cache/
 
# 安装 python 3.8.10
pyenv install 3.8.10
 
# 指定默认 python 版本为 3.8.10
pyenv global 3.8.10
 
# 检查默认 python 版本
python -V
 
#* 不生效问题解决办法
#* 如果 python 版本没有生效, 可能是 mac 电脑的系统限制导致软链接更改失败
#* 首先看下 pyenv 指定的 python 版本
pyenv version
~/.pyenv/versions/3.8.10/bin/python
#* 再看下当前系统 python 软链接指向
ls -l $(which python)
lrwxr-xr-x  1 root  wheel  68 Sep 21 15:34 /usr/local/bin/python -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/python
#* 修改当前系统 python 软链接指向为 pyenv 指定的 python 版本
ln -sf ~/.pyenv/versions/3.8.10/bin/python /usr/local/bin/python
 
# 最后给 pip 更换清华源(加快 pip 下载速度)
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 

 

posted @ 2023-04-27 09:59  天外归云  阅读(73)  评论(0)    收藏  举报