国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python抽象和自定義類定義與用法示例

2020-02-15 22:48:42
字體:
來源:轉載
供稿:網友

本文實例講述了Python抽象和自定義類定義與用法。分享給大家供大家參考,具體如下:

抽象方法

class Person():  def say(self):    passclass Student(Person):  def say(self):    print("i am student")

抽象類: 包含抽象方法的類

抽象類可以包含非抽象方法 抽象類可以有方法和屬性 抽象類不能進行實例化 必須繼承才能使用,且繼承的子類必須實現所有抽象方法
import abcclass Person(metaclass=abc.ABCMeta):  @abc.abstractmethod  def say(self):    passclass Student(Person):  def say(self):    print("i am student")s = Student()s.say()

補充:函數名和當做變量使用

class Student():  passdef say(self):  print("i am say")s = Student()s.say=says.say(9)

組裝類

from types import MethodTypeclass Student():  passdef say(self):  print("i am say")s = Student()s.say=MethodType(say,Student)s.say()

元類

# 類名一般為MetaClass結尾class StudentMetaClass(type):  def __new__(cls, *args, **kwargs):    print("元類")    return type.__new__(cls, *args, **kwargs)class Teacher(object, metaclass=StudentMetaClass):  passt = Teacher()print(t.__dict__)

附:python 抽象類、抽象方法的實現示例

由于python 沒有抽象類、接口的概念,所以要實現這種功能得abc.py 這個類庫,具體方式如下

from abc import ABCMeta, abstractmethod#抽象類class Headers(object):  __metaclass__ = ABCMeta  def __init__(self):    self.headers = ''  @abstractmethod  def _getBaiduHeaders(self):pass  def __str__(self):    return str(self.headers)  def __repr__(self):    return repr(self.headers)#實現類class BaiduHeaders(Headers):  def __init__(self, url, username, password):    self.url = url    self.headers = self._getBaiduHeaders(username, password)  def _getBaiduHeaders(self, username, password):    client = GLOBAL_SUDS_CLIENT.Client(self.url)    headers = client.factory.create('ns0:AuthHeader')    headers.username = username    headers.password = password    headers.token = _baidu_headers['token']    return headers

如果子類不實現父類的_getBaiduHeaders方法,則拋出TypeError: Can't instantiate abstract class BaiduHeaders with abstract methods  異常

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python面向對象程序設計入門與進階教程》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結》及《Python入門與進階經典教程》

希望本文所述對大家Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 牟定县| 平谷区| 施秉县| 樟树市| 晋城| 卢龙县| 龙江县| 靖州| 安图县| 博白县| 桐梓县| 博客| 板桥市| 凤山市| 海安县| 余庆县| 陕西省| 襄汾县| 古田县| 方城县| 即墨市| 饶平县| 林周县| 邻水| 元阳县| 白朗县| 滨州市| 元江| 仲巴县| 廊坊市| 三台县| 宿迁市| 扎囊县| 调兵山市| 新民市| 定陶县| 太仆寺旗| 商南县| 旌德县| 泾川县| 庆元县|