zoukankan      html  css  js  c++  java
  • 【流畅的python】笔记一:

    近期闲来无事,准备将【流畅的python】一书翻完。

    不定期会有工作任务来临,因此时间很紧,尽我能吸收的最大速度过一遍。年龄大了,时间稍微一长就会遗忘,留此待回忆吧!

    争取书中代码全部手工过一遍!

    开工!!!

    1.特殊方法:

    __getitem__  和  __len__

    比如:len(content)  实际执行 content.__len__

            obj[key] 实际执行  obj.__getitem__

    ==================================================

    一个纸牌类:

    card = collections.namedtuple('car',['rank','suit'])
    class FrenchDeck:
         ranks = [str(n) for n in range(2,11)] + list('JQKA')
         suits = 'spades diamonds clubs hearts'.split()
         def __init__(self):
             self._cards = [card(rank,suit) for suit in self.suits
                        for rank in self.ranks]
         def __len__(self):
             return len(self._cards)
         def __getitem__(self):
             return self._cards[position]

    =================================================

    import collections: --------collecions模块 :

    1、计数器:Counter

    2、双向队列:deque

    3、默认字典:defaultdict

    4、有序字典:OrderedDict

    5、可命名元组:namedtuple

    string.split()   切片  split() 以空格及 切片

    from random import choice    随机选取

    【尽可能使用python标准库,避免重新发明轮子】


    deck = FrenchDeck()

    deck类自动支持切片slicing操作。

    deck[:3]  查看最上面的3张牌

    输出:[card(rank='2', suit='spades'), card(rank='3', suit='spades'), card(rank='4', suit='spades')]

    deck[12::13] 查看‘A’的牌,查看序号为12的牌,每个13张拿1张

    输出:[card(rank='A', suit='spades'), card(rank='A', suit='diamonds'), card(rank='A', suit='clubs'), card(rank='A', suit='hearts')]


    特殊方法的存在,是为了被Python解释器使用,我们不需要调用它们。除非有大量的元编程存在,直接调用特殊方法的频率应该远低于你去实现它们的次数。唯一常用的是__init__方法,其目的是在你自己的子类的__init__方法中去调用超类的构造器。

    不要想当然的随意添加特殊方法。

  • 相关阅读:
    javaWeb 使用jsp开发 if else 标签
    javaWeb 使用jsp开发 if 标签
    javaWeb 使用jsp标签进行防盗链
    javaWeb 在jsp中 使用自定义标签输出访问者IP
    javaWeb el表达式和jstl快速入门案例
    javaWeb 使用 jsp 和 javaBean 实现计算器功能
    javaWeb 使用cookie显示上次访问网站时间
    javaWeb 使用cookie显示商品浏览记录
    javaWeb request乱码处理
    ubunu下用命令设置壁纸
  • 原文地址:https://www.cnblogs.com/tendercool/p/14241267.html
Copyright © 2011-2022 走看看