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

首頁 > 編程 > Python > 正文

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

2020-01-04 14:39:59
字體:
供稿:網(wǎng)友

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

抽象方法

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

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

  • 抽象類可以包含非抽象方法
  • 抽象類可以有方法和屬性
  • 抽象類不能進(jìn)行實(shí)例化
  • 必須繼承才能使用,且繼承的子類必須實(shí)現(xiàn)所有抽象方法
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()

補(bǔ)充:函數(shù)名和當(dāng)做變量使用

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結(jié)尾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 抽象類、抽象方法的實(shí)現(xiàn)示例

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

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)#實(shí)現(xiàn)類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

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

希望本文所述對大家Python程序設(shè)計(jì)有所幫助。


注:相關(guān)教程知識閱讀請移步到python教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 苍溪县| 夹江县| 库尔勒市| 博罗县| 拜泉县| 惠水县| 眉山市| 勐海县| 南通市| 资溪县| 平果县| 手游| 洞头县| 定安县| 连山| 南康市| 资兴市| 团风县| 腾冲县| 镇平县| 禹城市| 岢岚县| 和政县| 壤塘县| 鹤庆县| 龙井市| 全州县| 子洲县| 喀喇沁旗| 兴义市| 襄汾县| 沂源县| 临西县| 富阳市| 日土县| 万宁市| 乌审旗| 随州市| 吴堡县| 吴堡县| 吐鲁番市|