Python 语言最明显的特征之一是用缩进量表示从属关系,没有采用 Java, C 用括号定义作用域的自由书写风格。 所以 Python 对代码格式的要求十分严格,社区发展出了完整的编码规范和丰富的检查和修复工具,并能够整合到几乎所有主流编辑器中。
编码规范在提升代码质量和可读性、降低维护成本等方面发挥了核心作用,但如果没有相应的工具链帮助其落地,很难真正产生效果,本文第3、4节专门论述如何搭建可用的工具链。
Python 社区不鼓励对编码规范做人工审查,因为人工审查存在如下问题:
title,url,time_added,tags,status | |
defmacro - The Nature of Lisp,http://www.defmacro.org/ramblings/lisp.html,1340872707,lisp xml ant,unread | |
HTTP Made Really Easy,http://www.jmarshall.com/easy/http/,1449453698,http|tech,unread | |
AsciiDoc cheatsheet,https://powerman.name/doc/asciidoc,1547390268,asciidoc,unread | |
ContiPerf 2,http://databene.org/contiperf,1349362779,java|test,unread | |
AJAX in Django with jQuery | webcloud,http://webcloud.se/log/AJAX-in-Django-with-jQuery/,1338701906,ajax|django|jquery,unread | |
如何证明一加一等于二? | 科学人 | 果壳网 科技有意思,https://www.guokr.com/article/6556/,1529657618,math,unread | |
Intro to Unintrusive JavaScript with Django - Irrational Exuberance,http://dev.lethain.com/intro-to-unintrusive-javascript-with-django/,1338701831,django ajax webservice,unread | |
http://mindhacks.cn/2011/11/04/how-to-interview-a-person-for-two-years/,http://mindhacks.cn/2011/11/04/how-to-interview-a-person-for-two-years/,1405132841,,unread | |
» What I Learned From Increasing My Prices ExtendsLogic,http://www.extendslogic.com/business/ |
#!/usr/bin/env python3 | |
## This script starts a Web server providing texts and files sharing function. | |
## See the usage with `-h` option. | |
import os | |
import sys | |
import argparse | |
import urllib.parse | |
from http.server import HTTPServer, BaseHTTPRequestHandler |
{ | |
"$schema": "https://vega.github.io/schema/vega/v5.json", | |
"description": "A Demo", | |
"width": 700, | |
"height": 500, | |
"padding": 0, | |
"autosize": "none", | |
"data": [ | |
{ | |
"name": "nodes", |
{ | |
"nodes": [ | |
{"id": 1, "name": "1.13", "IP": "192.168.1.13", "group": "attacker"}, | |
{"id": 2, "name": "3.14", "IP": "192.168.3.14", "group": "victim"}, | |
{"id": 2, "name": "3.18", "IP": "192.168.3.18", "group": "victim"} | |
], | |
"edges": [ | |
{"id": 1, "source": 1, "target": 2, "relation": "SQL Injection"}, | |
{"id": 1, "source": 1, "target": 3, "relation": "Web Shell"} | |
] |
[project] | |
name = "my-fancy-project" | |
description = "My fancy project" | |
authors = [ | |
{name = "Leo", email = "[email protected]"}, | |
] | |
version = "0.1.0" | |
readme = "README.md" | |
license = {text = "MIT"} |
import pexpect | |
import argparse | |
import importlib | |
from pygments.styles.vim import VimStyle | |
from prompt_toolkit import PromptSession | |
from prompt_toolkit.history import FileHistory | |
from prompt_toolkit.lexers import PygmentsLexer | |
from prompt_toolkit.styles import style_from_pygments_cls | |
from prompt_toolkit.auto_suggest import AutoSuggestFromHistory | |
from prompt_toolkit.application.current import get_app |
/// This is the implementation of the first 2 parts of the wonderful 4-parts | |
/// posts "Understanding Parser Combinators" of | |
/// [F# for fun and profit](https://fsharpforfunandprofit.com/): | |
module ParserLib1 = | |
open System | |
/// Type that represents Success/Failure in parsing | |
type ParseResult<'a> = |
#!/bin/sh | |
# Function: | |
# print $output_num sections by order, | |
# each have $sec_num adjacent records | |
# from file $inp | |
inp=$1 | |
output_num=$2 | |
sec_num=$3 |
rc=%{$reset_color%} | |
cy=$fg_bold[cyan] | |
bl=$fg_bold[blue] | |
re=$fg_bold[red] | |
wh=%{$fg_bold[white]%} | |
ye=$fg_bold[yellow] | |
gr=$fg_bold[green] | |
ma=$fg_bold[magenta] | |
ZSH_THEME_GIT_PROMPT_PREFIX="git(" |