常數
常數(constant)是指宣告後不會變動的「變數」,但是在 Python 中並沒有真正意義上的常數,無法宣告一個不會變的變數,但是為了方便其他人和未來的自己閱讀程式碼,通常會將常數使用特殊的方式命名,全部大寫,單字間使用底線分隔: UPPER_UNDERSCORE例如:
CONSTANT_VALUE = 0
類別
類別(Class)會使用大駝峰(CamelCase, 又稱駝峰、帕斯卡 PascalCase)的方式命名, 例如:
class MyClass:
def __init__(self):
pass
函數、變數
都是使用蛇形命名法(snake_case),全部小寫,單字間使用底線區隔:
def my_function():
pass
my_class = MyClass()
user_name = '小明'
變數中的底線
對 python 來說,變數中的底線有特殊意義,不可以亂用。假設有一個變數不重要,不會使用到,那麼可以使用一個底線來「丟棄」他。像是下面的程式碼想要印出 10 次隨機的亂數,因為「第幾次」這個變數在這裡是多餘的,我們就可以使用 _ 來略過這個變數的命名:
for _ in range(10):
print(random.random())
私有變數
在變數前面加上底線代表私有變數,又有分兩種:一個底線:
代表這個變數是私有的,限於模組內部使用,但是在 python 中並不會限制外部引用,外部還是有辦法存取
_my_value = 123
兩個底線:
也是代表是私有變數,但是 python 會將變數名稱改變成 _類別名稱 + 變數名稱 的形式。雖然說是私有,但是外部還是可以存取,主要是為了防止和子類別中的變數名稱衝突。
class MyClass:
def __init__(self):
self.__user_id = 123
# print(my_class.__user_id)
# AttributeError: 'MyClass' object has no attribute '__user_id'
print(my_class._MyClass__user_id)
# 123
前後雙底線:
代表定義特殊方法,最常見的就是 __init__ 和 __str__ ,平時把類別印出來會顯示記憶體位置,但是可以使用 __str__ 覆寫,自訂輸出格式:
class MyClass:
def __init__(self):
self.__user_id = 123
def __str__(self):
return f"MyClass({{__user_id: {self.__user_id}}})"
my_class = MyClass()
print(my_class)
# MyClass({__user_id: 123})
如果沒有使用 __str__ 則會輸出:
<__main__.MyClass object at 0x000001B194ABA700>
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com