python命名規則
命名風格
python幾種不同命名風格
- 駝峰式命名法(WjW)
- 混合式命名法(wjWj)
- 大寫(WJWJWJ)或大寫加下劃線(WJWJWJ)
- 字首(wjing)或字尾(ingwj)下劃線,有時雙下劃線
變量
python變量分為:
- 常量
- 公有和私有變量
1.常量
常量全局變量,使用大寫加下劃線。指定的變量表示一個常數值
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(file)))
2.命名和使用
常量定義的是一組值,程式需要依賴的一組不變值,大多數就是配置檔案名,最好的做法是将所有常量放到一個檔案中,例如django的settings檔案
'''
遇到問題沒人解答?小編建立了一個Python學習交流QQ群:857662006
尋找有志同道合的小夥伴,互幫互助,群裡還有不錯的視訊學習教程和PDF電子書!
'''
SECRET_KEY = '(5hjjo=-=r1s43d+=yu([email protected]#qf_x'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'helloapp',
]
也可以使用Configparser子產品建立配置檔案。這種沒有上一種好。
一段很好的像标記的代碼,可以給定一些是無标記屬性等
OPTIONS={}
def register_option(name):
return OPTIONS.setdefault(name,1<<len(OPTIONS))#bin(len(OPTIONS))檢視二進制資料
def has_option(options,name):
return bool(options&name)
#定義标簽
BLUE=register_option('BLUE')
RED=register_option('RED')
YELLOW=register_option('YELLOW')
#設定标簽
SET=BLUE|RED
#判斷标簽是否存在設定中
has_option(SET,BLUE)
has_option(SET,YELLOW)
3.公有和私有變量
對于可變的且可以通過導入自由通路的全局變量,如果它們需要被保護,那麼應該使用下劃線加小寫字母變成私有變量。
4.函數和方法
函數和方法盡量使用小寫加下劃線,有些情況也使用混合大小寫
5.私有元素的正義
對于私有方法和函數,通常是字首兩個下劃線,這樣在運作時會被解釋器重命名,這樣可以避免與任何子類沖突。舉例說明
'''
遇到問題沒人解答?小編建立了一個Python學習交流QQ群:857662006
尋找有志同道合的小夥伴,互幫互助,群裡還有不錯的視訊學習教程和PDF電子書!
'''
class Base(object):
def __secret(self):
print("don't tell")
def public(self):
self.__secret()
class Top(Base):
def __secret(self):
print("never say never")
print(dir(Base))
b=Base()
b._Base__secret()
print(dir(Top))
Top().public()
#輸出
['_Base__secret',..., 'public']
don't tell
['_Base__secret', '_Top__secret', ..., 'public']
don't tell
這樣就會重命名帶有雙下劃線的函數和方法
6.特殊方法
特殊方法就是使用雙下劃線開始和結尾,正常的方法不應該使用這樣的寫法。
def __init__(self):
pass
def __add__(self):
pass
7.參數
參數都是用小寫,有時可以加下劃線
8.property
屬性都是用小寫或小寫加下劃線
9.類
類名使用駝峰法WjWj
10.子產品和包
子產品通常都是小寫,不帶下劃線,出了特殊的如init子產品,如果子產品是包的私有子產品會使用字首加一個下劃線。包也是一樣
命名
用’has’或’is’字首命名布爾元素
is_life=True#是否活着
is_connected=True#是否連接配接
has_cache=True#是否有記憶體
複數命名集合
users=['zhangsan','lisi']
顯示命名字典
個人位址用全稱
persons_addresses={'zhangsan':'beijing','lisi':'shanghai'}
類的名稱
類的名稱簡明扼要
SQLEngine
BaseCookie
子產品和包名稱
子產品和包要小寫,簡短sqlite,sha1,如果是協定加lib字尾,urllib