文鏈接:https://blog.csdn.net/feikon2/article/details/79126774
命名規(guī)約
1. 變量命名總結(jié):
- 1.單下劃線開(kāi)頭變量:protected
- 2.雙下劃線開(kāi)頭變量:private
- 3.雙下劃線開(kāi)頭,雙下劃線結(jié)尾:系統(tǒng)內(nèi)置變量
2. 函數(shù)命名總結(jié):
- 1.私有方法:小寫和一個(gè)前導(dǎo)下劃線
- 2.特殊方法(魔術(shù)方法):小寫和兩個(gè)前導(dǎo)下劃線,兩個(gè)后置下劃線
- 3.函數(shù)參數(shù):小寫和下劃線,缺省值等號(hào)兩邊無(wú)空格
3. 類名稱命名:
- 類總是使用駝峰格式命名,即所有單詞首字母大寫其余字母小寫。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
__Title__ = '下劃線變量與命名'
__Author__ = 'Zhangyf'
__Author_email__ ='hpuyanfeng@126.com'
__Time__ = '2018/1/22'
"""
# 變量命名總結(jié):
# 1.單下劃線開(kāi)頭變量:protected
# 2.雙下劃線開(kāi)頭變量:private
# 3.雙下劃線開(kāi)頭,雙下劃線結(jié)尾:系統(tǒng)內(nèi)置變量
"""
單下劃線開(kāi)頭變量
_xxx,單下劃線開(kāi)頭的變量,標(biāo)明是一個(gè)受保護(hù)(protected)的變量,原則上不允許直接訪問(wèn),但外部類還是可以訪問(wèn)到這個(gè)變量。
這只是程序員之間的一個(gè)約定,用于警告說(shuō)明這是一個(gè)私有變量,外部類不要去訪問(wèn)它。
print(stu._name) 當(dāng)要輸入_name時(shí),pycharm不會(huì)進(jìn)行_name的提示
print(stu.age) 當(dāng)要顯示age時(shí),pycharm會(huì)進(jìn)行age的提示
"""
class Student:
def __init__(self, name, sex):
self._name = name
self.sex = sex
stu = Student('zyf', 'Male')
print(stu._name) # 單下劃線protected的變量,原則上不允許直接訪問(wèn) 輸出:zyf
print(stu.sex) # age可以直接訪問(wèn) 輸出:Male
"""
雙下劃線開(kāi)頭
__xxx,雙下劃線開(kāi)頭的,表示的是私有類型(private)的變量。
只能是允許這個(gè)類本身進(jìn)行訪問(wèn)了, 連子類也不可以.
用于命名一個(gè)類屬性(類變量),調(diào)用時(shí)名字被改變
(在類Student內(nèi)部,__name變成_Student__name,如 self._Student__name)
雙下劃線開(kāi)頭的實(shí)例變量是不是一定不能從外部訪問(wèn)呢?其實(shí)也不是。仍然可以通過(guò)_Student__name來(lái)訪問(wèn)__name變量:
"""
class Person:
def __init__(self, name):
self.__name = name
per = Person('zyf2')
print(per._Person__name) # 輸出zyf2 但是無(wú)法直接訪問(wèn)__name
"""
雙下劃線開(kāi)頭,并且以雙下劃線結(jié)尾
__xxx__,以雙下劃線開(kāi)頭,并且以雙下劃線結(jié)尾的,是內(nèi)置變量.
內(nèi)置變量是可以直接訪問(wèn)的,不是 private 變量,如__init__,__import__或是__file__。
★不要自己定義這類變量
xxx_,單下劃線結(jié)尾的變量一般只是為了避免與 Python 關(guān)鍵字的命名沖突
USER_CONSTANT,大寫加下劃線,對(duì)于不會(huì)發(fā)生改變的全局變量,使用大寫加下劃線
"""
# 函數(shù)命名總結(jié):
# 1.私有方法:小寫和一個(gè)前導(dǎo)下劃線
# 2.特殊方法(魔術(shù)方法):小寫和兩個(gè)前導(dǎo)下劃線,兩個(gè)后置下劃線
# 3.函數(shù)參數(shù):小寫和下劃線,缺省值等號(hào)兩邊無(wú)空格
"""
函數(shù)
總體而言應(yīng)該使用,小寫和下劃線
私有方法 : 小寫和一個(gè)前導(dǎo)下劃線
這里和私有變量一樣,并不是真正的私有訪問(wèn)權(quán)限。
同時(shí)也應(yīng)該注意一般函數(shù)不要使用兩個(gè)前導(dǎo)下劃線(當(dāng)遇到兩個(gè)前導(dǎo)下劃線時(shí),Python 的名稱改編特性將發(fā)揮作用)。特殊函數(shù)后面會(huì)提及。
#特殊方法 : 小寫和兩個(gè)前導(dǎo)下劃線,兩個(gè)后置下劃線
#這種風(fēng)格只應(yīng)用于特殊函數(shù),比如操作符重載等。
#函數(shù)參數(shù) : 小寫和下劃線,缺省值等號(hào)兩邊無(wú)空格
"""
# 私有方法
class PrivateCase:
@staticmethod
def _secrete():
print(r"Don't test me")
priC = PrivateCase()
priC._secrete() # _secrete為protected member
# 特殊方法(魔術(shù)方法)
def __add__(self, other):
return int.__add__(other)
# 函數(shù)參數(shù)
def connect(self, user=None):
self._user = user
"""
★類名稱命名:
類總是使用駝峰格式命名,即所有單詞首字母大寫其余字母小寫。
類名應(yīng)該簡(jiǎn)明,精確,并足以從中理解類所完成的工作。
常見(jiàn)的一個(gè)方法是使用表示其類型或者特性的后綴,例如:SQLEngine ,MimeTypes
對(duì)于基類而言,可以使用一個(gè) Base 或者 Abstract 前綴
不要濫用 *args 和 **kwargs,可能會(huì)破壞函數(shù)的健壯性
"""
————————————————
版權(quán)聲明:本文為CSDN博主「Master_Chelif」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/feikon2/article/details/79126774