Python面向对象——内置对象的功能扩展

1.扩展Python内置类

Python的数据类型

  • 列表(list)、字典(dict)、集合(set)、文件(file)、字符串(str),这些都是对象

扩展list的功能,详解如图:

我们给列表添加了新的功能,搜索功能,能够找出给定字符串是否在列表中,如果在列表中,就返回列表中的字符串。图解如下 :

 扩展dict的功能,详解如图:

2.代码验证

class ContactList(list):
    def search(self, name):
        matching_contacts = []
        for contact in self:
            if name in contact.name:
                matching_contacts.append(contact)
        return matching_contacts

class Contact:
    all_contacts = ContactList()
    def __init__(self, name, email):
        self.name = name 
        self.email = email
        self.all_contacts.append(self)
        
c1 = Contact("john aa", "y@.net")
c2 = Contact("john bb", "b@.net")
c3 = Contact("john bb", "c@.net")

[c.name for c in  Contact.all_contacts.search("john")]
class LongNameDict(dict):
    def longest_key(self):
        longest = None
        for key in self:
            if not longest or len(key) > len(longest):
                longest = key
        return longest

longkeys = LongNameDict()
longkeys['AAA'] = 1
longkeys['BBBB'] = 12
longkeys['CCCCC'] = 'nihao'

longkeys.longest_key()

参考:本文参考学习《Python3 Object Oriented Programming》,Dusty Phillips 著

原文地址:https://www.cnblogs.com/brightyuxl/p/8798238.html