python slice建構函式

2021-09-22 23:02:35 字數 976 閱讀 6058

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 奇怪的地方在於建構函式中呼叫了自己的另乙個建構函式 我們知道,當定義乙個物件時,...