概覽
這篇文章主要用來存放我在工作中使用Python時的一些問題與收獲
正文
- Python中不允許使用數(shù)字打頭命名函數(shù),變量;外部文件名盡量也不要用數(shù)字打頭,因為這樣就無法用import導入模塊或者函數(shù)了。
- 直接賦值,淺拷貝,深度拷貝的區(qū)別:
- 直接復制:指向同一個對象(id相同)
- 淺拷貝:不同的對象(id不同),但是子對象指向同一對象(子對象id相同,比如說,字典里面的值為列表)
- 深度拷貝: 不同的對象(id不同),子對象也是不同對象(子對象id也不同)
更具體的參考:鏈接
- 在開發(fā)的時候,盡量在前期就做好文檔管理(尤其是使用jupter notebook這種集成工具的時候),以便后期復用
參考:在Jupyter Notebook構(gòu)建規(guī)范和可復用的數(shù)據(jù)分析過程 - Python類型屬于對象,不屬于變量
python類型屬于對象,不屬于變量
Python的函數(shù)參數(shù)傳遞:傳值?引用? - python中的return語句會退出函數(shù)。但是放在try語句中時,是個例外。
參考:python函數(shù)中return后的語句一定不會執(zhí)行嗎? - python中直接用in運算符的時候,會優(yōu)先調(diào)用集合類中的contains方法;如果沒有,python會自動生成一個默認的方法,即在集合類中,對self使用for循環(huán),針對目標項進行一次搜索。
- type(a)b:這個的意思是將b轉(zhuǎn)化為a的類型
舉例:
input:a = '1', b = 2; type(a)(b)
mid: type(a) is str; type(a)(b) = str(b)
output; '2' - 對象的三個基本要素:id, type, value
- is 和 == 的區(qū)別:
is 是比較兩者id是否相同
== 是比較兩者value是否相同
只有小整數(shù)range(-5,257)與字符串類型, is結(jié)果為True。
舉例:
a = 1
b = 1
a is b ----> True
參考:Python中is和==的區(qū)別
附:is None與== None的區(qū)別
- 使用集合的迭代器來代替for循環(huán):
test1 = [1,2,3]
# For loop
for i in test1:
print(i)
# Iterator
iter_object = iter(test1)
try:
while True:
print(next(iter_object))
except StopIteration:
pass
- 構(gòu)造方法
構(gòu)造方法是一種特殊的方法,它是一個與類同名且沒有返回值類型的方法。對象的創(chuàng)建就是通過構(gòu)造方法來完成,其功能主要是完成對象的初始化。當類實例化一個對象時會自動調(diào)用構(gòu)造方法。構(gòu)造方法和其他方法一樣也可以重載。 - 私有變量
protected類型的變量:以單下劃線開頭的表示的變量,保護類型只能允許其本身與子類進行訪問,使用“from M import”時,不會將以一個下劃線開頭的對象引入 。
私有類型變量:以雙下劃線開頭的表示的變量,只能允許這個類本身進行訪問了,連子類也不可以用于命名一個類屬性(類變量)
參考:python 類的私有變量和私有方法)
- lt,le,eq,gt,ge的含義
lt: less than--小于
le: less and equal--小于等于
eq: equal--等于
gt: greater than--大于
ge: greater and equal--大于等于 - print函數(shù)中end參數(shù)
print()函數(shù)默認換行
input:
print('a',end='')
print('b',end='')
output:
ab
15.類內(nèi)init外定義類的變量
參考:Python中類內(nèi)init外定義類的變量
未完待續(xù),后期會不定期更新