基于Flask實現后臺權限管理系統 - 導言

網上有這樣一個段子,在評論語言好壞的時候,都會有人評論說PHP是世界上最好的語言,人生苦短我用Python,這里姑且不去評論語言的好壞,每一個語言存在都有它的價值,譬如C語言適合底層開發,整個Linux操作系統幾乎都是用C語言開發的,而像Go語言適合高并發的網絡開發一樣,并不是說像Go干不了其它事情,只是更適合某種應用場景。
談到python之美,我認為這里有兩個流派:python和pythonic。在我理解,Pythonic 就是很Python的Python代碼,也就是用非常優美的python代碼實現功能。舉例說明:
我們要打開文件進行處理,在處理文件過程中可能會出錯,但是,我們需要在處理文件出錯的情況下,也順利關閉文件。
傳統風格的Python代碼:

1 file= open(C:\data.txt')
2   try: for line in file: 
3     ...... 
4   finally: 
5      file.close()

?

Pythonic的代碼:

1 with open(c:\data.txt') as file:
2   for line in file:
3     ......

?

通過with上下文管理,無需考慮資源釋放問題以及異常情況下的資源釋放問題,上下文管理器會幫你去處理。
再舉一個例子:
字符串鏈接

1 names = ['1', '2', '3', '4', '5', '6', '7', '8'] 
2 s = names[0] for name in names[1:]:
3 s += ', ' + name print(s)

?

pythonic

1 print(', '.join(names))

?

可見pythonic的代碼是如此的簡潔和優雅。
具體更多的pythonic的代碼,大家可以參考相關書籍,平時在學習和工作中注意積累。關于pythonic,這里不得不來一段python之禪,在python控制臺下,輸入:
import this
會顯示下面內容:
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

中文意思如下:
Python之禪 by Tim Peters

優美勝于丑陋
明了勝于晦澀
簡潔勝于復雜
復雜勝于凌亂
扁平勝于嵌套
間隔勝于緊湊
可讀性很重要
即便假借特例的實用性之名,也不可違背這些規則
不要包容所有錯誤,除非你確定需要這樣做
當存在多種可能,不要嘗試去猜測
而是盡量找一種,最好是唯一一種明顯的解決方案
雖然開始這并不容易,因為你不是Python之父
做也許好過不做,但不假思索就動手還不如不做
如果你無法向人描述你的方案,那肯定不是一個好方案;反之亦然
命名空間是一種絕妙的理念,我們應當多加利用

轉載于:https://www.cnblogs.com/99code/p/7530773.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/251838.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/251838.shtml
英文地址,請注明出處:http://en.pswp.cn/news/251838.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

5-1 unittest框架使用

unittest是python的一個單元測試框架,內置的,不需要pip install 什么什么的。直接在py文件里面調用 import unittest。 他這個框架是怎么回事呢,他可以對數據初始化,然后執行測試(里面有斷言功能就是判斷返回是否正確…

bzoj 4573: [Zjoi2016]大森林

Description 小Y家里有一個大森林,里面有n棵樹,編號從1到n。一開始這些樹都只是樹苗,只有一個節點,標號為1。這些樹 都有一個特殊的節點,我們稱之為生長節點,這些節點有生長出子節點的能力。小Y掌握了一種魔…

Unity3D在C#編程中的一些命名空間的引用及說明

System包含用于定義常用值和引用數據類型、事件和事件處理程序、接口、屬性和處理異常的基礎類和基類。其他類提供支持下列操作的服務:數據類型轉換,方法參數操作,數學計算,遠程和本地程序調用,應用程序環境管理以及對…

docker入門簡介

簡介docker(容器技術)是實現虛擬化技術的一種方案,通過利用linux中命名空間,控制組和聯合文件系統這個三個主要技術,來實現應用程序空間的隔離.通過對應用程序運行環境的封裝來生成鏡像并部署來實現跨平臺,一定程度上加快了服務交付的整體流程.這篇文章主要介紹docker的一些基本…

Highcharts 配置選項詳細說明

http://www.runoob.com/highcharts/highcharts-setting-detail.html 轉載于:https://www.cnblogs.com/mengfangui/p/8969121.html

linux下的啟停腳本

linux下的根據項目名稱,進行進程的啟停腳本 #!/bin/bashJAVA/usr/bin/java APP_HOME/opt/program/qa/wechat APP_NAMEprogramname.jar APP_PARAM"--spring.config.location${APP_HOME}/application.properties --logging.path${APP_HOME}"case $1 in star…

python 網頁爬取數據生成文字云圖

1. 需要的三個包: from wordcloud import WordCloud #詞云庫 import matplotlib.pyplot as plt #數學繪圖庫 import jieba; 2. 定義變量(將對于的變量到一個全局的文件中): import re; pdurl_firsthttps://movie.do…

python---重點(設計模式)

前戲:設計模式簡介 設計模式是面向對象設計的解決方案,是復用性程序設計的經驗總結。(與語言無關,任何語言都可以實現設計模式) 設計模式根據使用目的的不同而分為創建型模式(Creational Pattern&#xff0…

洛谷 題解 P2010 【回文日期】

因為有8個字符,所以可得出每一年只有一個回文日期。 因此只要判斷每一年就行了。 做法: 我們先把年倒過來,例如2018年就倒為8102,就得出8102就是回文日期的后四個字符,我們只要判斷一下有沒有這個月份和這個日期。 具體…

線程相關

1、啟動線程1.11 new Handler()形式new Handler(mContext.getMainLooper()).post(newOnekeyBindFrameActivity.NetworkThread());1.12new Handler().postDelayed(new StatusCheckLoginBindFrameThread(), IoTCultivatePlantConfig.START_ACTIVITY_POST_DELAYED);1.2 new Thread…

驗證Oracle收集統計信息參數granularity數據分析的力度

最近在學習Oracle的統計信息這一塊,收集統計信息的方法如下: DBMS_STATS.GATHER_TABLE_STATS (ownname VARCHAR2, ---所有者名字tabname VARCHAR2, ---表名partname VARCHAR2 DEFAULT NULL, ---要分析的分區名estimate_percent NUMBER DEFAULT NULL, …

Python之NumPy(axis=0 與axis=1)區分

Python之NumPy(axis0 與axis1)區分 轉載于:https://www.cnblogs.com/greatljg/p/10802392.html

Python Web開發:開發wsgi中間件

本文參考了: github.com/alanctkc/ws…Youtube : Creating WSGI Middleware上篇文章簡要提到:wsgi 規范中的 app 是一個可調用對象,可以通過嵌套調用的方式實現中間件的功能。這篇文章就來親自動手實現一下。 此文的重點在于 app 端&#xff…

20165320 第九周學習總結

主要內容: 1.URL類 URL類是java.net包中的一個重要的類,使用URL創建對象的應用程序稱為客戶端程序。URL 的構造方法:try { URL url new URL ("http://www.google.com"); } catch (MalformedURLException e) {System.out.println(&…

Python 函數的執行流程-函數遞歸-匿名函數-生成器

1 函數的執行流程函數的執行需要對函數進行壓棧的,什么是壓棧呢,簡而言之就是在函數執行時在棧中創建棧幀存放需要變量以及指針的意思。具體涉及的知識非常多,這里就已一個Python腳本簡單進行分析。當我們運行上面代碼時,它的執行…

python 課堂筆記-for語句

for i in range(10):print("----------",i)for j in range(10):print("world",j)if j> 5:break 轉載于:https://www.cnblogs.com/leon-zyl/p/7542466.html

【2】信息的表示和處理

1.現代計算機存儲和處理的信息都以二值信號表示。 2.機器為什么要使用二進制進行存儲和處理? 答:二值信號能夠很容易的被表示、存儲、傳輸。例如: 可以表示為穿孔卡片上有洞和無洞、導線上的高壓和低壓,順逆時針的磁場。 3.大多數…

java版b2b2c社交電商spring cloud分布式微服務(二) 服務消費者(rest+ribbon)

一、ribbon簡介 Ribbon is a client side load balancer which gives you a lot of control over the behaviour of HTTP and TCP clients. Feign already uses Ribbon, so if you are using FeignClient then this section also applies. —–摘自官網 ribbon是一個負載均衡客…

[學習筆記]支配樹

被支配樹支配的恐懼 定義 顯然,這個支配關系是一個樹(或者如果有的點不能從r到達,就是一個樹一堆點)。 首先不會成環,其次也不會是DAG 即如果A支配C,B支配C,那么A和B之間必然有支配關系 解法 首…

RBAC 權限設計(轉載)

來源 :https://blog.csdn.net/rocher88/article/details/43190743 這是我在網上找的一些設計比較好的RBAC權限管理不知道,像新浪、搜狐、網易、百度、阿里巴巴、淘寶網的RBAC用戶權限這一塊,都是這種細顆粒的RBAC設計開發,還是把他…