python基础升级 第四课作业 花开自相依

Python中对序列的切片访问,是左闭右开。

现请您

创建一个可被迭代的类

改变默认的切片访问方式为左闭右闭

举例:c1=youclassname([0,1,2,3,4,5,6,7,8,9]

c1[2:7] 返回2,3,4,5,6,7

class UpdateQiepian():
    def __init__(self, values=None):#初始化
        if values is None:
            self.values = []
        else:
            self.values = values
        
    def __getitem__(self, key):
        if type(key)==slice:#如果传入的key是一个slice类,则这是一个切片访问
            start=key.start             
            if key.stop==None:
                stop=len(self.values)
            else:
                stop = key.stop + 1
            
            if key.start==None:
                start=0
            return self.values[start:stop]
        else:
            return str(self.values[key])*2#故意多输出2次
        
        
l1=list(range(10))
o1=UpdateQiepian(l1)
o1[2:7]


导入os包

创建递归循环完成一个目录的遍历

如果下还有一个目录,依次进行遍历

import os
def getAllFile(path):
    allfilelist = os.listdir(path)
    for file in allfilelist:
        filepath=os.path.join(path,file)
        if os.path.isdir(filepath)==True:
            print(filepath)
            getAllFile(filepath)                 
        else:
            print(filepath)
 

path='D:\\test'
getAllFile(path)
已邀请:

ClownFish

赞同来自:


改变默认的切片访问 方式,就是通过重写python提供的魔术函数

__getitem__(self, key):
if type(key)==slice

另外,如果 要将一个类变成可被迭代的,,可以直接用__iter__这个魔术函数。。

OS那题也做出来 了。。赞

要回复问题请先登录注册

返回顶部