Python 第十六天学习笔记

鸭子类型:



class Nstr(str):
def __sub__(self,other):

return self.replace(other,'')     

>>> a = Nstr("I love you aaaaaa")
>>> b = Nstr("a")
>>> a - b                   

'I love you '

当实现a-b操作时,触动__sub__魔法方法,此时,a为self,b为other,执行__sub__函数时,

返回  self.replace(other,"")  ,即返回self(即a),在a中,将other(即b)replace(替换)成“”

(减去谁,就是把谁编程空格)


第43课



类的静态属性




class C:
    @staticmethod            表示static()是静态方法
    def static(arg1,arg2,arg3):
        print(arg1,arg2,arg3,arg1+arg2+arg3)

    def nostatic(self):

        print("I love you")


44 魔法方法:简单定制



import time as t

#初始化
class Mytimer:
    def __init__(self):           用来初始化,很重要!!!
        self.begin = 0
        self.end = 0
        self.lasted = []
        self.unit = ["年","月","天","小时","分钟","秒"]
        self.prompt = "未开始计时"

    def __str__(self):                   因为后面都用到了prompt 这个提示语句,属于字符串,  
        return self.prompt          所以需要定义凡是遇见字符串,就要返回prompt

    __repr__=__str__                  为了实现目标:输入t,直接显示计时的时间,因为把t定义为了字符串
    #如果不加这句
    #>>> t1
    #<__main__.Mytimer object at 0x000000D4E02A9CF8>
    '''
    原因如下:
    class A:                          class A:
        def __str__(self):                 def __repr__(self):
            return "lalala"                    return "lalala"

    a = A()
    要实现输入a,就自动弹出 lalala
    如果是str,应该是print(a)          如果是repr ,应该是直接输入a
    
    '''

  
    #开始计时
    def start(self):
        print("开始计时")
        self.begin = t.localtime()
        self.prompt = "请先调用stop(),结束计时"

    #停止计时
    def stop(self):
        if not self.begin:                                 self.begin 的初始值是0 ,not self.begin 就是1,if 1 ,表示为真,要执行if 语句
            print("请先调用start(),开始计时")
        else:
            self.end = t.localtime()
            self._calc()
            print("结束计时")
            
   #计算时长
    def _calc(self):
        self.lasted = []
        self.prompt = "一共花了"
        for index in range(6):
            self.lasted.append(self.end[index]-self.begin[index])
            self.prompt += (str(self.lasted[index])+self.unit[index])            把计时时间t定义为字符串
        #return prompt          不需要返回,不知道为什么

30分钟的课程我用了3小时

调BUG真的太费脑了,,,,

在为我的未来哀叹的同时感谢BUG,让我成长。


下次看197 第44课的作业

下次看第45个视频

阅读更多
上一篇Python 第十五天学习笔记
下一篇Python 第十七天学习笔记
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭