python 类定义 继承

1 定义一个时间类,带默认参数

class mytime(object):
    def __init__(self,hour=21,                  minute=13,                  second=50):
        self.hour   = hour
        self.minute = minute
        self.second = second

    def __str__(self):
        return ‘__str__ hour:minute:second = %02d:%02d:%02d‘                %(self.hour,self.minute,self.second)

    def get_hour(self):
        return self.hour

    def get_minute(self):
        return self.minute

    def get_second(self):
        return self.second

    def print_time(self):
        print  ‘hour:minute:second = %02d:%02d:%02d‘ %(self.hour,self.minute,self.second)
  

说明:  构造函数     __init__(self,hour=21, minute=13, second=50)  带默认参数的定义方式 ;

     用于输出的函数    __str__

得到某属性值的方法    get_xxxx

输出属性值的方法 print_time

2 定义日期时间类,继承时间类的属性和方法

class mydatetime(mytime):
    def __init__(self,year = 2016,mounth = 1,day = 1,                       hour=21, minute=13,second=50):
        super(mydatetime,self).__init__(hour,minute,second)
        self.year = year
        self.mounth = mounth
        self.day = day

    def __str__(self):
        return ‘__str__ year--mounth--day = %02d--%02d--%02d‘                %(self.year,self.mounth,self.day)

    def __del__(self):
        """ __del__ mydatetime destroyed """
        print "__del__ mydatetime destroyed"

    def print_date(self):
        print  ‘year-mounth-day = %04d-%02d-%02d‘         %(self.year,self.mounth,self.day)
#        self.print_time()

说明:   mydatetime 继承 mytime 的属性值,这里mydatetime(子类),mytime(父类)

    构造函数     __init__(self,year = 2016,mounth = 1,day = 1, hour=21, minute=13,second=50)  带默认参数的定义方式 ,注意要通过 super初始化父类属性值;

    用于输出的函数    __str__

输出属性值的方法 print_date

3 测试

if __name__ == ‘__main__‘:

    print "\n"
    print "--"*10," mytime t0:"
    t0 = mytime()
    print t0
    t0.print_time()
    print t0.get_hour()

    print "\n"
    print "--"*10," mytime t1:"
    t1 = mytime(hour=7,second=20)
    t1.print_time()

    print "\n"
    print "--"*10," mydatetime da:"
    da = mydatetime(minute=40)
    print da
#    da.print_date()
    da.print_time()
    del da

测试输出

>>> runfile(‘F:/Python/hysrc_py/untitled0_class.py‘, wdir=r‘F:/Python/hysrc_py‘)

--------------------  mytime t0:
__str__ hour:minute:second = 21:13:50
hour:minute:second = 21:13:50
21

--------------------  mytime t1:
hour:minute:second = 07:13:20

--------------------  mydatetime da:
__str__ year--mounth--day = 2016--01--01
hour:minute:second = 21:40:50
__del__ mydatetime destroyed
>>>
时间: 2024-12-28 18:57:57

python 类定义 继承的相关文章

python类的继承

Python 类的一些基本概念 Python中一切皆对象,声明变量函数等的过程实际上就是它们到内存中为对象分配的空间的连接.Python中的类同Java.C++一样,有自己的属性与方法.属于一个对象或类的变量被称为域. 域有两种类型--属于每个实例/类的对象或属于类本身,它们分别被称为实例变量和类变量. 类的变量 由一个类的所有对象(实例)共享使用.所有对象共用一个类变量的拷贝.对象的变量 由类的每个对象/实例拥有.因此每个对象有自己对这个域的一份拷贝. 类的方法与普通的函数只有一个特别的区别-

python类的继承和多态

python类的继承和多态 现在属于是老年人的脑子,东西写着写着就忘了,东西记着记着就不知道了.之前学C++的时候就把类.对象这块弄得乱七八糟,现在是因为很想玩python,所以就看看python的类和对象. 就像说的,类有三个特征:封装.继承.多态. 1.封装:类封装了一些方法,可通过一定的规则约定方法进行访问权限. C++中的成员变量有public.private.ptotected. 在python中,默认的成员变量都是public的,如果成员变量前面是加两个下划线,表示该成员变量是私有的

Inheritance Of Python 类的继承

Inheritance OOP三要素之一,继承 人类和猫都继承自动物类. 个体继承自父母,集成了父母的一部分特征. 在面向对象的世界中,从父类继承,就可以直接拥有弗雷德属性和方法,这样可以减少代码,多复用.子类可以定义自己的属性和方法. 类的继承 对于python来讲,所有的祖先都是object,所有的类都继承自object class Animal: def __init__(self, name): self._name = name @property def name(self): re

python 类 六:继承自动寻找父类

本系列博客(python 类) 的部分例子来自于 <<python 核心编程 第二版>> 前面我们谈到 python 继承,是可以引用父类的__init__方法的 ,并在此基础上添加子类自己的特殊的属性的设定,形成子类自己的__init__  构造函数. 在这种方法中,必须显示的指出父类的名字. #coding:utf-8 class p(object):     def __init__(self,nm):         self.name  = nm class c(p):

Python类的继承和方法重写总结

我们都知道类可以继承,通过继承可以实现代码的复用,使代码看起来更加简洁 比如: Class B(A): Pass 定义了一个名为B的类,它继承于A,我们把B叫做A的子类,A叫做B的超类(父类). 方法重写 当子类定义了一个和超类相同名字的方法时,那么子类的这个方法将覆盖超类相同的方法(或称为重写) 先借用两个例子: >>> class Bird: ...     def __init__(self): ...         self.hungry = True ...     def 

python类的继承和重写

构造方法: def __init__(self) 路径: e:/pythonpro/liuyun/class02.py #——————类的构造方法——————- class person(): name ="张翰" sex = "男" #构造方法,固定的写法:初始化类 def __init__(self,xb): self.sex = xb self.test() def test(self): print("这是test方法") d = per

python类的继承、封装和多态

摘自https://www.cnblogs.com/evablogs/p/6724477.html 继承 1 2 3 4 5 6 7 8 class Person(object):     def __init__(self, name, gender):         self.name = name         self.gender = gender class Student(Person):    def __init__(self, name, gender,score):  

关于 python 类与继承中方法调用 的 一个小知识点记录

(1)D类,多继承于C类与B类,C类与B类继承于A类.C类中没用__init__(), C类的实例化会先寻找第一个继承类是否存在__init__(),也就是B类的__init__().因为python3中使用的是广度优先的方法,寻找路径为D-->B-->C-->A 关于其他方法的继承,也是这个顺序. class A(object): def __init__(self): print("i am A") def call(self): print("A CA

python类的继承的两种方式

class Animal(object): """docstring for Animal""" def __init__(self, name): self.name = name def run(self): print 'Animal is running...' class Dog(Animal): """docstring for Dog""" def __init__(sel