香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > python >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

Python抽象和自定义类定义与用法示例


时间:2022-01-11 10:31 作者:admin610456


本文实例讲述了python/' target='_blank'>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程序设计有所帮助。

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)