python的类与子类

作者: Sonia_Du | 来源:发表于2019-04-23 11:50 被阅读0次

[TOC]

1、类的定义
类是用来将代码与代码处理的数据相关联,有助于降低复杂性,更易维护代码;
python也提供了一种方法将代码及其处理的数据定义为一个类,一旦有了类,就可以用它来创建(或实例化)数据对象,它会继承类的特性;
在面向对象的世界里,代码通常称为类的方法method,而数据通常称为类的属性attribute,实例化的数据对象通常称为实例instance。
每个对象都由类创建,并共享一组类似的特性。
定义一个类时,实际上是在定义一个定制工厂函数,可以在代码中引用这个函数

image.png

2、定义类及使用
Step1:使用class创建对象

class Athlete:                        #Athlete为类名
    def __init__(self):
    # the code to initialize a 'Athlete' object

Step2:创建对象实例
将对类名的调用赋至各个变量,通过这种方式,类(以及init())方法提供了一种机制,允许创建一个定制的工厂函数,用来根据需要创建多个对象实例:
a = Athlete()
b = Athlete()
c = Athlete()
d = Athlete()

image.png

3、self参数的重要性
是一个方法参数,总是指向当前对象实例

  • 目标标识符赋至self参数
  • 每个方法的第一个参数都是self

4、例子

class Athlete:
    def __init__(self,value = 0):
        self.thing = value
    def how_big(self):
        return(len(self.thing))

>>> d=Athlete("hello")
>>> d.how_big()
5
>>> d
<__main__.Athlete object at 0x03269FB0>
image.png
class Athlete:
    def __init__(self,a_name,a_dob=None,a_times=[]):
        self.name = a_name
        self.dob = a_dob
        self.times = a_times

>>> d =Athlete('q','2012-6-17',['2.36','2.35'])
>>> b =Athlete('p')
>>> type(d)
<class '__main__.Athlete'>
>>> type(b)
<class '__main__.Athlete'>
#虽然都由d和b都经过了Athlete这个工厂函数处理,但是存储在不同的内存地址上

>>> d
<__main__.Athlete object at 0x02F09F90>
>>> b
<__main__.Athlete object at 0x0336F850>
>>> d.name
'q'
>>> d.dob
'2012-6-17'
>>> d.times
['2.36', '2.35']
>>> b.dob
>>> b.times
[]

子类

1、子类的定义
通过继承现有的其他类来创建一个类,包括用list,set,dict提供的python内置数据结构类。

2、定义子类及使用

  • NamedList:新类名
  • list:被派生的老类
  • list.init([]):初始化所派生的类
  • self.name = a_name:把参数赋至属性
>>> class NamedList(list):
    def __init__(self,a_name):
        list.__init__([])
        self.name = a_name

        
>>> j = NamedList("Jone")
>>> type(j)
<class '__main__.NamedList'>
>>> dir(j)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__module__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'name', 'pop', 'remove', 'reverse', 'sort']
>>> j.append('b')
>>> j
['b']
>>> j.name
'Jone'

相关文章

  • python的类与子类

    [TOC] 类 1、类的定义类是用来将代码与代码处理的数据相关联,有助于降低复杂性,更易维护代码;python也提...

  • python 类的子类

    看下面的代码,请仔细阅读,并看看是否能够发现点什么问题呢? 上面这段代码,运行起来没有什么问题,但是,仔细看,发现...

  • python 面向对象: super()

    python 关于 super 的使用 子类对象调用父类方法 :super(B,b).hh() 子类中调用父类方法...

  • python重要知识点总结一

    内容包含: 元类 python 对象和类的绑定以及类方法,静态方法 python 子类调用父类方法总结 pytho...

  • 类与子类

    分类观念的建立关键在类与子类的关系理解上,这样才能理解加减法的含义

  • python继承机制和Minxin模式

    python继承和访问父类和super python通过在类方法名旁边声明(父类名)来继承父类子类可以通过父类名....

  • Python3中的MRO C3算法

    我们知道python中的类与类之间是可以相互继承的。在继承关系中,子类自动拥有父类中除了私有属性之外的其他所有内容...

  • 面向对象

    类的定义方法 子类的定义 多重继承 python允许多重继承。

  • python一些重要很多场合用到的语句

    python语句 scores = [[] for u in range(num_users)] 子类继承父类的初...

  • 2018-08-01python学习面向对象(类的继承)

    子类:继承者父类(超类):被继承者1.怎么继承python中类是可以继承的,并且支持多继承 说明:python中所...

网友评论

    本文标题:python的类与子类

    本文链接:https://www.haomeiwen.com/subject/naxvgqtx.html