校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 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代碼風格與編程習慣重要嗎?的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    一本久久精品一区二区| 午夜精品爽啪视频| youjizz国产精品| 国产精品理论在线观看| 91免费版在线看| 亚洲一区在线观看视频| 在线播放中文一区| 久久不见久久见中文字幕免费| 精品国免费一区二区三区| 国模无码大尺度一区二区三区| 中文字幕av一区二区三区| 在线这里只有精品| 美女在线一区二区| 国产精品免费视频网站| 欧美特级限制片免费在线观看| 午夜日韩在线电影| 久久久久久久久岛国免费| 成人黄色大片在线观看| 亚洲国产你懂的| 精品国产乱码久久久久久夜甘婷婷| 国产精品99精品久久免费| 亚洲人成网站色在线观看| 在线不卡中文字幕播放| 国产白丝精品91爽爽久久| 一区二区欧美视频| 久久中文娱乐网| 在线观看免费视频综合| 激情五月婷婷综合网| 亚洲欧洲中文日韩久久av乱码| 欧美高清视频不卡网| 成人性生交大合| 日韩在线一区二区三区| 国产精品久久久久久久岛一牛影视| 欧美在线一二三| 国产白丝网站精品污在线入口| 午夜精品aaa| 国产精品免费观看视频| 日韩一级高清毛片| 色综合天天在线| 久久99精品国产麻豆不卡| 一区二区三区四区乱视频| www国产精品av| 欧美精品xxxxbbbb| 色婷婷av一区二区三区软件| 韩国毛片一区二区三区| 亚洲第一福利视频在线| 《视频一区视频二区| 久久久久久久网| 欧美精品v国产精品v日韩精品 | 中文字幕成人在线观看| 欧美一区二区三区四区视频| 99久久伊人网影院| 国产一区激情在线| 日本欧美大码aⅴ在线播放| 亚洲欧美日韩精品久久久久| 久久久精品国产99久久精品芒果 | 2023国产精华国产精品| 欧美久久久久久久久| 欧洲激情一区二区| 色综合色综合色综合| 成人午夜视频网站| 国产高清久久久| 国产精品996| 国产毛片精品国产一区二区三区| 青娱乐精品在线视频| 日本在线不卡一区| 日本欧美在线观看| 奇米777欧美一区二区| 亚洲1区2区3区4区| 亚洲mv在线观看| 午夜精品在线视频一区| 亚洲h在线观看| 亚洲综合丝袜美腿| 亚洲午夜日本在线观看| 亚洲国产综合视频在线观看| 亚洲蜜臀av乱码久久精品 | 亚洲精品一区二区三区蜜桃下载| 日韩欧美国产精品一区| 日韩欧美久久久| 精品国产凹凸成av人网站| 日韩免费成人网| 久久综合九色综合欧美就去吻| 日韩精品一区二区在线观看| 欧美va亚洲va香蕉在线| 欧美精品一区视频| 久久婷婷综合激情| 欧美激情一区二区| 最新不卡av在线| 一区二区三区日韩精品视频| 午夜婷婷国产麻豆精品| 久久精品国内一区二区三区| 国产在线国偷精品产拍免费yy| 国产一区二区主播在线| 成人高清在线视频| 在线观看区一区二| 日韩一卡二卡三卡| 久久精品欧美日韩精品| |精品福利一区二区三区| 亚洲午夜久久久久久久久电影网| 五月天一区二区三区| 久久成人av少妇免费| 成人一区二区在线观看| 91国产丝袜在线播放| 日韩欧美123| 一色桃子久久精品亚洲| 天堂va蜜桃一区二区三区 | 免费不卡在线观看| 91麻豆国产自产在线观看| 91一区二区三区在线播放| 欧美日韩在线综合| 2023国产精品自拍| 亚洲综合一区二区| 国产一区二区三区黄视频| 日本道在线观看一区二区| 日韩欧美一二三区| 亚洲色图制服诱惑| 麻豆国产精品777777在线| heyzo一本久久综合| 欧美一二三区精品| 亚洲视频一区在线观看| 麻豆成人91精品二区三区| 一本色道久久加勒比精品 | 中文字幕一区二区三区精华液| 亚洲影院久久精品| 国产一二三精品| 欧美日韩高清一区二区| 亚洲国产精品精华液ab| 舔着乳尖日韩一区| 99久久久久久| 久久精品亚洲乱码伦伦中文| 午夜私人影院久久久久| 91在线精品秘密一区二区| 精品捆绑美女sm三区| 亚洲国产日韩一区二区| 成人av在线资源网站| 欧美成人官网二区| 丝袜美腿一区二区三区| 91麻豆视频网站| 国产精品视频一二三| 久久99国产精品麻豆| 在线91免费看| 一区二区三区免费在线观看| 不卡在线观看av| 久久精品水蜜桃av综合天堂| 毛片av中文字幕一区二区| 欧美色涩在线第一页| 依依成人综合视频| 91在线播放网址| 亚洲国产经典视频| 国产精品一卡二卡在线观看| 精品理论电影在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎 | 在线观看91视频| 亚洲人成电影网站色mp4| 国产suv一区二区三区88区| 久久久久亚洲综合| 国产一区二三区| 精品国产伦一区二区三区观看方式| 日韩电影在线看| 欧美一区二区免费观在线| 亚洲chinese男男1069| 色狠狠一区二区| 一区二区三区在线视频观看58| 色综合色综合色综合| 亚洲免费av在线| 欧美色视频一区| 日韩av中文字幕一区二区三区| 欧美疯狂做受xxxx富婆| 日韩va亚洲va欧美va久久| 日韩欧美一区二区久久婷婷| 久久成人综合网| 久久色中文字幕| 成人免费视频国产在线观看| 国产精品视频yy9299一区| aaa国产一区| 亚洲午夜一区二区三区| 日韩午夜精品电影| 精品一区二区国语对白| 国产无遮挡一区二区三区毛片日本| 国产91精品免费| 天天做天天摸天天爽国产一区| 欧美精品在线一区二区三区| 免费成人在线观看视频| 久久久亚洲午夜电影| 9久草视频在线视频精品| 亚洲精选视频免费看| 欧美日韩一级二级| 久久成人18免费观看| 国产精品伦理在线| 日本乱码高清不卡字幕| 免费人成在线不卡| 欧美国产精品中文字幕| 欧美最猛性xxxxx直播| 免费高清在线一区| 国产精品你懂的在线| 欧美日韩不卡在线| 国产在线精品一区二区夜色 | 日本一区中文字幕| 国产日韩欧美不卡| 91高清视频在线|