print(vars().keys())
print(vars()) #返回物件的變數,若無引數與dict()方法類似
_name_
name用來規定這個檔案的用處,如果是主檔案(可執行檔案),name== 「main」 否則,name等於模組名
_file_.py檔案的路徑
print(os.path
.dirname(os.path
.dirname(__file__))) #顯示當前目錄的上一級目錄
sys.path() #執行路徑
os.path
.dirname
#檢視當前目錄的上一層
os.path
.join
#拼接
例子:把當前目錄的執行路徑新增到sys.path()
import os
import sys
a1 = os.path
.dirname(__file__)
a2 = "bin"
c1 = os.path
.join(a1, a2)
sys.path
print(sys.path)
_builtins_
內建函式在此
__doc__ #.py檔案的注釋
__package__ #指定.py檔案所在的資料夾,本檔案不顯示
__cached__ #快取,匯入模組時,模組檔案會產生.pyc檔案(略懂)
乙個函式呼叫時返回乙個迭代器,那這個函式就叫做生成器(generator);如果函式中包含yield語法,那這個函式就會變成生成器
def
func
():yield
1yield
2yield
3yield
4
上述**中:func是函式稱為生成器,當執行此函式func()時會得到乙個迭代器。
>>> temp = func()
>>> temp.__next__()
1>>> temp.__next__()
2>>> temp.__next__()
3>>> temp.__next__()
4>>> temp.__next__()
traceback (most recent call last):
file "", line 1, in
stopiteration
例子:
利用生成器自定義range
def
nrange
(num):
temp = -1
while
true:
temp = temp + 1
if temp >= num:
return
else:
yield temp
迭代器是訪問集合元素的一種方式。迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退,不過這也沒什麼,因為人們很少在迭代途中往後退。另外,迭代器的一大優點是不要求事先準備好整個迭代過程中所有的元素。迭代器僅僅在迭代到某個元素時才計算該元素,而在這之前或之後,元素可以不存在或者被銷毀。這個特點使得它特別適合用於遍歷一些巨大的或是無限的集合,比如幾個g的檔案
特點:
a = iter([1,2,3,4,5])aat
0x101402630>
a.__next__()
1a.__next__()
2a.__next__()
3a.__next__()
4a.__next__()
5a.__next__()
traceback (most recent call last):
file "", line
1, in
stopiteration
python 迭代器 生成器 內建函式
迭代器是迭代取值的工具,迭代是乙個重複的過程,每一次重複都是基於上一次的結果而來的.為什麼要用迭代器呢?1.可以不依賴索引取值 2.同一時刻在記憶體中只有乙個值,不會過多的占用記憶體 如何用迭代器?可迭代的物件 但凡內建有 iter 方法的物件都是可迭代的物件,列如str,list,dict,tup...
02 迭代器生成器內建函式
day2迭代器生成器內建函式 列表與生成器表示式的區別 把列表解析的換成 得到的就是生成器表示式 列表解析與生成器表示式都是一種便利的程式設計方式,只不過生成器表示式更加節省記憶體空間 python不但使用迭代器協議,讓for迴圈變得更加通用。大部分內建函式,也是使用迭代器協議訪問物件的 可迭代物件...
迭代器及生成器
user bin env python coding utf 8 1迭代器必需遵循迭代協議,需要使用iter轉換為遵循迭代協議,必須能夠使用next方法。for相當於進行了iter和next兩個方法。把序列 轉換為了可迭代序列 例1 x hellow c x.iter print type c pr...