Python面向對象——內置對象的功能擴展

1.擴展Python內置類

Python的數據類型

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

擴展list的功能,詳解如圖:

咱們給列表添加了新的功能,搜索功能,可以找出給定字符串是否在列表中,若是在列表中,就返回列表中的字符串。圖解以下 :
python

 擴展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 著app

相關文章
相關標籤/搜索