slice(start,stop=none,step=none) 建立乙個切片物件
s.start 切片起始值,預設為none
s.stop 切片終止值,預設為none
s.step 切片步長,預設為none
說明:平常使用的[::]實際上是系統自動轉換為
slice(start,stop,step)的物件然後傳遞給索引引數
即:l[::2] 實際上是l[slice(none,none,2)]
更本質上是l.__getitem__(slice(none,none,2))
示例:
#在直譯器中輸入:
l = [1,2,3,4,5,6,7,8,9]
l[::2] #[1,3,5,7,9]
l[slice(none,none,2)] #[1,3,5,7,9]
l.__getitem__(slice(none,none,2)) #[1,3,5,7,9]
練習:
class mylist:
def __init__(self,iterable):
self.data = list(iterable)
def __getitem__(self,i):
if type(i) is int:
print('正在做索引操作')
elif type(i) is slice:
print('正在做切片操作')
print('切片開始值是',i.start)
print('切片終止值是',i.stop)
print('步長是',i.step)
else:
raise keyerror
return self.data[i]
l = mylist([1,3,5,7,9])
print(l[::2])
Python slice與indices的用法
slice eg e 0,程式設計客棧1,程式設計客棧2程式設計客棧,3,4,5,6 s slice 2,3 e s 2 slice的區間左閉右開 s slice 2,3,none slice strar,stop step start缺少時就是0 indices eg print s.indice...
建構函式 拷貝建構函式 賦值建構函式
class和struct很大乙個區別在於,c除了成員的訪問控制許可權,struct中的成員預設是public,而class中的field預設是private class還有乙個special的地方是它有建構函式 constructor。建構函式是class中的一員,和成員變數 其他成員函式一起構成乙...
構造函式呼叫建構函式
題目如下 問下列 的列印結果為0嗎?include stdlib.h include iostream using namespace std struct clscls int main 列印結果是不定的,不一定為0 奇怪的地方在於建構函式中呼叫了自己的另乙個建構函式 我們知道,當定義乙個物件時,...