日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python对象继承

發布時間:2023/12/31 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python对象继承 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

繼承允許我們在兩個或者更多的類之間創建一種“是一個”的關系,這種關系把共同的細節抽象到一個超類里。

從技術上講,每一個我們創建的類都使用了繼承,所有的python類都是一個叫做object的特殊類的子類,如果我們不具體指明我們的類從其他類繼承,那這個類自動從object繼承過來。通過如下的語法,我們可以公開聲明我們的類從object繼承:

class MySubClass(object):pass

其中,object就是父類或者說是超類。MySubClass是子類。可以說是子類來源于父類,或者說是子類擴展了父類。

class Contact:all_contacts = []def __init__(self, name, email):self.name = nameself.email = emailContact.all_contacts.append(self)

上面的例子中介紹了類變量,all_contacts的列表,它屬于類定義中的一部分,會被這個類所有的實例共享。這里只有一個Contact.all_contacts列表,如果我們在任何一個對象調用self.all_contacts,他會引用這個列表。在初始化函數里面創建了一個新的contact類,這個列表會自動把這個對象添加進來。要小心這種用法,因為如果曾經使用self.all_contacts給這個變量賦值,那么將會在這個對象里面創建一個新的實例變量,這個類變量將會保持不變并且可以通過Contact.all_contacts訪問到。

如果需要在聯系人中添加供應商信息,則如下:

class Supplier(Contact):def order(self, order):print("If this were a real system we would send ""{} order to {}".format(order, self.name))

將上述的兩端代碼保存為腳本,然后使用python -i導入這個腳本,在交互的解釋器中執行如下的語句

$ python -i order.py >>> c = Contact("Some Body", "somebody@example.net") >>> s = Supplier("Supplier", "supplier@example.net") >>> print(c.name, c.email, s.name, s.email) Some Body somebody@example.net Supplier supplier@example.net >>> c.all_contacts [<__main__.Contact object at 0x106eeefd0>, <__main__.Supplier object at 0x106f0f048>] >>> c.all_contacts[0] <__main__.Contact object at 0x106eeefd0> >>> c.all_contacts[0].name 'Some Body' >>> c.all_contacts[1].name 'Supplier' >>> c.all_contacts[1].email 'supplier@example.net' >>> c.all_contacts[0].email 'somebody@example.net' >>> c.order("I need pliers") Traceback (most recent call last):File "<stdin>", line 1, in <module> AttributeError: 'Contact' object has no attribute 'order' >>> s.order("I need pliers") If this were a real system we would send I need pliers order to Supplier >>>

?那么現在我們的Supplier類可以做任何Contact類可以做的事情,包括把自己添加到all_contacts這個列表中,和一個供應商需要處理的所有特殊的事情。這就是繼承的魅力。

?

參考:

1、《Python3 面向對象編程》 [加]Dusty Philips 著

轉載于:https://www.cnblogs.com/anovana/p/8136095.html

總結

以上是生活随笔為你收集整理的python对象继承的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。