婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Python代碼風格與編程習慣重要嗎?

Python代碼風格與編程習慣重要嗎?

熱門標簽:市場上的電銷機器人 北京電銷外呼系統加盟 北瀚ai電銷機器人官網手機版 小蘇云呼電話機器人 儋州電話機器人 佛山400電話辦理 地圖標注面積 朝陽手機外呼系統 所得系統電梯怎樣主板設置外呼

Python代碼風格

首先我們要以 PEP8 代碼規范為標準,但也無需完全遵守。例如:一行不能超過 79 個字符等。

Python模塊模板

模塊開頭指定編碼格式

模塊文檔注釋,展示模塊的信息,信息內容自己決定,如:

  • Author,作者
  • Desc,模塊描述
  • Date,創建時間

有一個 main() 函數

有一個程序主入口 if __name__ == '__main__':

#!/usr/bin/python3
# -*- coding:utf-8 -*-
# @Author: Hui
# @Desc: { 項目主入口模塊 }
# @Date: 2020/05/21 13:04


def main():
    print('Hello Python')


if __name__ == '__main__':
    main()

main() 函數方便用于測試當前模塊功能。

import 導入

import 導入,避免使用 from ... import * ,因為這可能導致模塊、類、變量名重復而導致錯誤。

我自己的 import 代碼風格有兩種。

由短到長

根據代碼的長度由短到長依次導入,import 過度到 from ... import ... ,換行分割可有可無,我是根據 from ... import ... 前面的 import 的數量和整體美觀來決定要不要換行。

import os
import sys
import time
import random
import config
import pygame
import requests
import numpy as np

from PIL import Image
from threading import Thread
from datetime import datetime

分類導入

分類導入,是分好類后在根據代碼的長度由短到長依次導入,主要有:

  • Python內置模塊
  • Python自建模塊
  • Python第三方庫
# Python內置模塊導入
import os
import sys
import time
import random
from threading import Thread
from datetime import datetime

# Python自建模塊、第三方庫導入
import config
import pygame
import requests
import numpy as np
from PIL import Image

導入順序依次為

Python內置模塊  -->  Python自建模塊  -->  Python第三方庫

根據自己的風格,導入的自建模塊、Python第三方庫少時可以在一起無需換行

導入的自建模塊少時可以跟Python內置模塊在一起,就是轉換成 由短到長 的風格

建議

導入模塊代碼風格無需照搬照抄地遵循,我們做任何的優化就是為了讓代碼更好看,結構清晰,無需刻意遵循死規則、爛規則,應該活學活用,創新變化,學習別人優秀的方案,總結出適合自己的。

例如:

假如import 導入語句比 from 導入語句更長,要遵循或者糾結 import 是要在 from 導入語句前面還是由短到長排放呢?

import numpy as np
import multiprocessing

from PIL import Image
import numpy as np
from PIL import Image
import multiprocessing

無需太過糾結、摳字眼,兩種導入風格都可以。

Django代碼范例

封裝html的url網址

渲染 html 頁面,把 html 的存放路徑總體封裝到一個類里面。

class BookView(object):
    """圖書模塊視圖類"""
	
    # 圖書首頁
    INDEX_VIEW = 'book/index.html'
	
    # 圖書信息頁
    BOOK_INFO_VIEW = 'book/book_info.html'
	
    # 英雄信息頁
    HERO_INFO_VIEW = 'book/hero_info.html'



# 定義視圖函數
def index(request):
    """
    圖書首頁
    """
    data = {
        'content': 'hello world',
        'list': list(range(1, 10)),
    }
    return render(request, BookView.INDEX_VIEW, data)


def show_book(request):
    """
    展示圖書信息界面
    """
    book_list = BookInfo.objects.all()
    data = {
        'book': book_list
    }
    return render(request, BookView.BOOK_INFO_VIEW, data)

封裝注冊的提示錯誤信息

返回頁面提示的錯誤信息,統一封裝到字典中,提高代碼可讀性、擴展性。

初始版本

class UserView(object):
    """用戶模塊視圖類"""
    
    LOGIN_VIEW = 'user/login.html'
	
    REGISTER_VIEW = 'user/register.html'
	
    USER_CENTER_VIEW = 'user/user_center.html'
    
    
def register(request):
    username = request.get('username')
    password = request.get('password')
    email = request.get('email')
    allow = request.get('allow')
    
    # 校驗注冊項是否有空值 
    # all()中有一個為空返回False,都有值則True
    if not all([username, password, email]):
        return render(request, UserView.REGISTER_VIEW, {'error_msg': '數據不完整'})
    
    # 校驗是否勾選(同意)用戶協議
    if allow != 'on':
        return render(request, UserView.REGISTER_VIEW, {'error_msg': '請勾選用戶協議'})
     
    # 校驗用戶名是否重復
    try   
        user = User.object.get(username=username)
    except User.DoesNotExists:
        user = None
     
    if user:
        return render(request, UserView.REGISTER_VIEW, {'error_msg': '該用戶已存在'})

    return render(request, 'register.html')

可以看到在返回響應數據時代碼大致一樣,只有提示信息不一樣

return render(request, UserView.REGISTER_VIEW, {'error_msg': '數據不完整'})

return render(request, UserView.REGISTER_VIEW, {'error_msg': '請勾選用戶協議'})

return render(request, UserView.REGISTER_VIEW, {'error_msg': '該用戶已存在'})

因此封裝后的版本

def register(request):
    username = request.get('username')
    password = request.get('password')
    email = request.get('email')
    allow = request.get('allow')
    
    error_msg = {
        'email_error': '郵箱格式不正確',
        'user_exists': '該用戶已存在',
        'data_error': '數據不完整',
        'user_protocol': '請勾選用戶協議',
    }
    
    # 返回頁面的數據
    data = dict()
    
    # 校驗注冊項是否有空值 
    # all()中有一個為空返回False,都有值則True
    if not all([username, password, email]):
        data['error_msg'] = error_msg['data_error']
    
    # 校驗是否勾選(同意)用戶協議
    elif allow != 'on':
        data['error_msg'] = error_msg['user_protocol']
    else:
        # 校驗用戶名是否重復
        user = User.object.filter(username=username)
            
        if user:
            data['error_msg'] = error_msg['user_error']
        else:
            pass
        
    return render(request, UserView.REGISTER_VIEW, data)
# 校驗用戶名是否重復
try   
	user = User.object.get(username=username)
except User.DoesNotExists:
    user = None

優化后

User.object.filter(username=username)

get 獲取不到數據會報異常,filter則返回一個空的 query_set 查詢結果集,去除了 try ... except 異常捕獲。讓代碼結構更清晰。

我們把 if、if.. 改成了 if elif else ,把 render(request, 'register.html', data) 抽到外面去了,并不需要在每一個 if 里面 return 響應。把錯誤信息封裝在 error_msg 字典中,下次想再添加一些錯誤提示信息或者想修改錯誤提示信息可以在 error_msg 字典中添加、修改,這樣易維護、擴展,也更加明確有哪些錯誤信息。

到此這篇關于Python代碼風格與編程習慣重要嗎?的文章就介紹到這了,更多相關Python編程規范內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 給大家整理了19個pythonic的編程習慣(小結)
  • Python入門篇之編程習慣與特點
  • 符合語言習慣的 Python 優雅編程技巧【推薦】
  • 只用20行Python代碼實現屏幕錄制功能
  • Python一行代碼實現自動發郵件功能
  • 只需要100行Python代碼就可以實現的貪吃蛇小游戲
  • 利用Python計算圓周率π的實例代碼
  • 寫好Python代碼的幾條重要技巧
  • Python 線程池模塊之多線程操作代碼
  • python使用tkinter實現透明窗體上繪制隨機出現的小球(實例代碼)
  • python3調用c語言代碼的全過程記錄

標簽:定西 商丘 金融催收 龍巖 酒泉 云南 寧夏 江蘇

巨人網絡通訊聲明:本文標題《Python代碼風格與編程習慣重要嗎?》,本文關鍵詞  Python,代碼,風格,與,編程,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python代碼風格與編程習慣重要嗎?》相關的同類信息!
  • 本頁收集關于Python代碼風格與編程習慣重要嗎?的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美人与z0zoxxxx视频| 玖玖九九国产精品| 久久久蜜臀国产一区二区| 91福利在线导航| 成人的网站免费观看| 九色|91porny| 91麻豆国产自产在线观看| 免费成人小视频| 亚洲高清视频在线| 成人欧美一区二区三区在线播放| 亚洲精品一区二区三区蜜桃下载 | 欧美影院一区二区| 91社区在线播放| 91香蕉视频在线| 99久久99精品久久久久久| 懂色一区二区三区免费观看| 国产激情一区二区三区| 精油按摩中文字幕久久| 精品一区二区日韩| 国产美女久久久久| 国产精品综合二区| 成人国产在线观看| 91丨porny丨国产入口| 91性感美女视频| 日本久久精品电影| 欧美日韩亚洲高清一区二区| 91精品在线麻豆| 精品88久久久久88久久久| 久久九九久精品国产免费直播| 国产亚洲精品7777| 中文字幕国产精品一区二区| 国产精品久久久久久久久免费丝袜 | 久久99精品国产91久久来源| 亚洲另类春色校园小说| 久久久久久麻豆| 日韩av一区二| 蜜乳av一区二区| 国产高清精品网站| 久久66热re国产| 国产成人一区在线| 蜜桃久久精品一区二区| 欧洲中文字幕精品| 日韩美女视频一区二区| 不卡av在线网| 亚洲激情综合网| 国产成人高清在线| 欧美极品少妇xxxxⅹ高跟鞋 | 欧美日韩成人高清| 人人狠狠综合久久亚洲| 91麻豆国产香蕉久久精品| 亚洲一级二级三级| 日本韩国视频一区二区| 一区二区欧美在线观看| 911精品产国品一二三产区| 久久精品国产亚洲a| 国产欧美日韩三区| 在线观看av一区| 看片的网站亚洲| 亚洲女同一区二区| 中文字幕免费不卡在线| 国产福利不卡视频| 中文字幕永久在线不卡| 91麻豆精品国产91久久久| 色香蕉成人二区免费| 国产成a人亚洲| 国产一区二区三区高清播放| 三级不卡在线观看| 一区二区三区高清在线| 久久精品欧美一区二区三区不卡| 中文无字幕一区二区三区| 欧美mv和日韩mv国产网站| 在线一区二区三区四区| 91性感美女视频| 一本到一区二区三区| 国产一区二区剧情av在线| 怡红院av一区二区三区| 中文字幕一区二区三区不卡| 欧美一卡二卡在线观看| 91精品国产一区二区| 激情文学综合网| 精品一区二区三区免费| 精品一区二区在线播放| 欧美大尺度电影在线| 日韩亚洲欧美中文三级| 制服丝袜在线91| 欧美性色黄大片| 日韩一区二区精品在线观看| 欧美日韩一区久久| 一区二区三区精品| 日韩一区二区三区精品视频| 成人av片在线观看| 99久久久无码国产精品| 国产91丝袜在线观看| 成人污污视频在线观看| 成人国产电影网| 色婷婷香蕉在线一区二区| 色综合久久99| 中文字幕第一页久久| 日韩午夜激情免费电影| 日韩欧美一区二区三区在线| 精品日韩欧美在线| 91色综合久久久久婷婷| 在线一区二区三区四区五区| 欧美电影免费提供在线观看| 国产精品视频观看| 久久se精品一区二区| 日本中文在线一区| 老司机精品视频在线| bt7086福利一区国产| 精品国产乱码久久久久久久久| 日韩亚洲欧美一区| 视频一区二区三区入口| 国产精品一级片在线观看| 欧美精品第1页| 亚洲欧美偷拍另类a∨色屁股| 欧美大胆一级视频| 亚洲午夜在线视频| 91丨九色porny丨蝌蚪| 最新中文字幕一区二区三区| 国产激情精品久久久第一区二区 | 秋霞午夜av一区二区三区| 一区二区三区在线播| 国内成人自拍视频| 国产欧美精品一区二区色综合朱莉| 亚洲色图清纯唯美| 国产成人免费在线视频| 欧美一区二区三区不卡| 亚洲电影一级黄| 欧美一区日本一区韩国一区| 亚洲男人天堂av网| 欧美无乱码久久久免费午夜一区| 亚洲狠狠爱一区二区三区| 蜜臀av一区二区| 国产精品传媒入口麻豆| 成人综合婷婷国产精品久久免费| 久久久精品蜜桃| www.综合网.com| 亚洲va欧美va人人爽| 国产午夜精品福利| 狠狠狠色丁香婷婷综合激情 | 亚洲欧洲www| 亚洲欧洲另类国产综合| 99综合影院在线| 综合自拍亚洲综合图不卡区| 亚洲国产一区二区三区 | 成人小视频在线| 成人黄色网址在线观看| 欧美一区二区视频在线观看| 亚洲蜜臀av乱码久久精品蜜桃| 午夜精品视频一区| 成人黄色片在线观看| 欧美成人a在线| 天堂久久一区二区三区| 成a人片国产精品| 欧美伊人久久大香线蕉综合69 | 欧美精品一区二区蜜臀亚洲| 欧美极品另类videosde| 免费成人在线观看视频| 色偷偷久久一区二区三区| 久久综合久久99| 亚洲影院在线观看| 一区二区欧美精品| 日韩欧美亚洲国产精品字幕久久久 | 欧美三级欧美一级| 亚洲国产精品嫩草影院| 欧美不卡一区二区| 国产日韩亚洲欧美综合| 制服丝袜中文字幕亚洲| 欧美肥妇毛茸茸| 91精品国产乱码久久蜜臀| 欧美日韩大陆一区二区| 亚洲国产成人av| 中文字幕视频一区二区三区久| 欧美理论电影在线| 一本久久a久久精品亚洲| 欧美高清激情brazzers| 亚洲成在线观看| 日韩美女视频在线| 7777精品伊人久久久大香线蕉经典版下载 | 欧美高清视频不卡网| 日韩午夜在线观看视频| 中文子幕无线码一区tr| 日韩美女啊v在线免费观看| 婷婷久久综合九色综合绿巨人 | 欧美自拍偷拍一区| 久久影音资源网| 一区二区三区91| 国产传媒欧美日韩成人| 日本精品免费观看高清观看| 色婷婷久久久亚洲一区二区三区| 欧美色网一区二区| 国产精品久久影院| 亚洲成人高清在线| 国产精品77777竹菊影视小说| 欧美日韩综合不卡| 国产欧美一区二区在线观看| 亚洲午夜精品一区二区三区他趣| 久久国产精品72免费观看| 欧美性xxxxxxxx| 丁香婷婷深情五月亚洲|