Python开发指南
[本文出自天外归云的博客园]
Python开发规范
代码规范
代码规范是最重要的一个点,写代码很容易,写好代码很难。涉及代码规范方面的问题,大家写代码的时候多注意下。
针对我们同学写python代码时经常出现的问题,总结了以下规范:
- 命名规范:- 类名——驼峰方式命名,例:AnyClass。
- 方法名、变量名、模块名——全小写字母加下划线组成,例:any_method, any_variable。
 
- 代码格式化:提交的每一个代码文件都需要经过格式化,并推荐使用代码检查插件,养成好的编码习惯:black或pep8。
- 注释规划化:- 注释中#后面要加空格,中文和英文之间要加空格,例:# 这是一个包含 en words 的注释。
- 标点符号统一用英文的标点符号,不用中文的标点符号。
 
- 常量化:一旦一个字符串值出现过两次及以上,就要提取成有意义的常量。常量名——全大写英文字母加下划线组成,例:ENV_NAME = "test"。
- 配置化:一些经常需要手动修改的常量值提取到配置系统中,例:ENV_NAME = get_from_apollo_conf("env_name")。
- 引用分组:自带库中模块引用一组、外部库中模块引用一组、公司内部库中模块引用一组、当前项目内部模块引用一组。
- 可读性(多花一些时间去思考如何命名是值得的):- 方法名要和方法实现保持一致性原则。一些反例:- 方法名为query_config(self),实际的动作为self.config = xxx,query应该改成init。
 
- 减少不必要的省略。例如:send_message不要省略为send_m。
- 类名和方法名要区分开:- 类名一般以名词结尾。例如:XxxManager, XxxClient, XxxBuilder。
- 方法名一般以动词开头。例如:query_xxx, init_xxx, get_xxx, update_xxx, add_xxx。
 
 
- 方法名要和方法实现保持一致性原则。一些反例:
- 职责单一:方法的实现要遵从高内聚、低耦合、职责单一原则。一些反例:- 方法名为query_xxx,实际的逻辑为先初始化配置、再进行了一些操作对某些状态进行了更新、再查询了xxx,实际这个方法中包含了很多步骤,不只是query。既不满足一致性原则,也不满足职责单一原则。
 
日志规范
- 日志内容:- 全部由小写英文字母+英文字符+空格组成,不使用中文及特殊格式的标点符号。
- 不使用连续的空格。
 
- 日志等级:-  避免使用错误的级别输出日志。比如:用info级别的日志输出error信息。- debug级别:记录调适性质的日志。比如:输入输出、接口返回值等。
- info级别:记录程序关键运行阶段以及关键状态变化的日志。
- warn级别:记录告警级别的日志。比如:走到了某个代码路径分支,虽然不代表错误,但需要引起重视。
- error级别:记录错误、异常级别的日志。
- fatal级别:记录崩溃性的日志。
 
 
-  避免使用错误的级别输出日志。比如:用info级别的日志输出error信息。
- 日志时间格式(精确到毫秒):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
本文来自博客园,作者:天外归云,转载请注明原文链接:https://www.cnblogs.com/LanTianYou/p/17358115.html
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号