Python 第十六天学习笔记

原创 2018年04月17日 21:57:13

鸭子类型:



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个视频

Slim 框架学习,第十一天 _Router(二)

今天接着昨天的内容,继续讲RouterInterface 的内容 popGroup/** * 从数组中,删除最后一个路由 * Removes the last route grou...
  • yantao1226
  • yantao1226
  • 2017-12-13 23:03:32
  • 58

Machine Learning第十一周笔记:photo OCR

博客已经迁移至Marcovaldo’s blog (http://marcovaldong.github.io/)刚刚完成了Cousera上Machine Learning的最后一周课程,这周介绍了m...
  • MajorDong100
  • MajorDong100
  • 2016-04-17 10:20:33
  • 8057

[ExtJS5学习笔记]第十五节 Extjs5表格显示不友好?panel的frame属性在作怪

将昨天显示的问题给debug了一下,发现官方例子中,将承载着grid的panel容器中frame属性设置为true了。试了下,果真就是这个原因,来看下我的最终成果吧。...
  • sushengmiyan
  • sushengmiyan
  • 2014-09-04 19:32:54
  • 5951

英语学习笔记:老友记season10

1、短句: it's so wild 太酷了 i would not wanna be him right now 现在我可不想成为他 go into labor 怀孕...
  • zha_stef
  • zha_stef
  • 2013-08-08 09:57:04
  • 385

第十六天学习笔记

1、网络互联设备主要包括:中继器、集线器、网桥、交换机、路由器、网关等。 中继器是最简单的互联设备,作用是放大电信号,扩大网络的地理覆盖范围,工作在物理层。 集线器(hub)是局域网内连接服务器与...
  • hqj_email
  • hqj_email
  • 2016-10-23 19:58:34
  • 131

黑马程序员--- 学习笔记(第十六天)

Map集合: 该集合存储键值对,一对一对往里存,而且要保证键的唯一性 Map |--HashTable |--HashMap |--TreeMap HashTable: ...
  • u012422158
  • u012422158
  • 2014-04-10 13:09:48
  • 645

python学习---第十六天

在下这厢有礼了 学一门语言,最基础和重要的就是数据结构了,而在python中最基本的数据结构是序列,也可以理解为数组,但貌似比数组强大。 >>> jason=['jason',42] >>> jam...
  • zw515370851
  • zw515370851
  • 2017-12-08 09:11:52
  • 59

Struts2学习笔记

  • 2009年05月23日 09:49
  • 253KB
  • 下载

Python学习笔记

  • 2010年02月23日 17:05
  • 596KB
  • 下载

第十六天

在用set和get方法的时候person.age=10;实际调用的是[person stage:10];  NSLog(@"%d",person.age)实际调用的是[person age]; 不使用...
  • ZHANG_FD
  • ZHANG_FD
  • 2015-11-11 09:18:06
  • 194
收藏助手
不良信息举报
您举报文章:Python 第十六天学习笔记
举报原因:
原因补充:

(最多只允许输入30个字)