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