python学习(6)继承

1.继承

继承的父类在定义类的括号中表示,子类与父类的关系与C++以前学到的一样:子类is父类。

子类要注意在初始化函数 __init__() 对父类属性进行初始化:super(子类名, self).__init__(父类初始化函数的参数,self省略)

2.获取变量信息

(1)isinstance()方法 

判断一个变量是否属于某个类型:isinstance(变量名, 类名)

(2)type()方法

可以接收基本类型、变量(包括指向函数或类的变量),返回类型。可以用==判断两个变量是否同类型。

(3)dir()

获得一个对象的所有属性和方法。

3.多态

比如说父类与子类有同名同参数但内容不同的函数。

class A:  

    def prt(self):  

        print "A"  

class B(A):  

    def prt(self):  

        print "B" 

def test(arg):  

    arg.prt()  

a = A()  

b = B()  

test(a)  

test(b)

输出:

A

B

4.多重继承

Python允许继承多个父类,称为多重继承。通过多重继承,子类同时获得多个父类的所有功能。

class P1():

    pass

class P2():

    pass

class C1(P1,P2):

    pass

 

5.getattr()、setattr()以及hasattr()

配合getattr()、setattr()以及hasattr(),我们可以直接操作一个对象的属性。

>>> setattr(obj, 'y', 19) # 设置一个属性'y'

>>> hasattr(obj, 'x') # 有属性'x'吗?

True

>>> getattr(obj, 'x') # 获取属性'x'

19

>>> obj.y # 获取属性'y'

19

获取不存在的对象会抛出一个AttributeError错误。

 

时间: 2024-11-05 06:18:50

python学习(6)继承的相关文章

Python中类的继承

在软件设计里,代码的复用和代码稳定性,一直是软件开发的重要目标之一,因为只有这样才能积累各种基础组件,以及维护以前做过的工作.从复用的特性来说,就是利用以前做过的工作,比如就像硬件里的IC一样,不需要知道它是怎么样实现的,只要使用它就行了.因而软件也需要有这种IC,在代码层次里的IC,以前看来只是用函数的方式复用,或者只是数据结构的复用.当迈进面向对象编程时代时,自然而然地想到就使用类来复用了,这样数据结构和函数都同时能复用上,比函数的复用更省心了一步,就是数据结构和算法都不需要关心了,只关心类

教程-关于Python学习,求指点

问题描述 关于Python学习,求指点 我想学Python, 怎么样才能把它学的透呢?求各位大神指点迷津,推荐教程或者Python培训机构 .教的好就行. 解决方案 python核心编程,看书,多动手,练习. 解决方案二: 感觉基本很难说把python学透的吧,把python的核心理解了,然后各种函数.方法只需要看官方文档就好. 所以其实是需要用的时候边看官方文档边学然后现用就行了. 感觉如果有其它语言(如C/C++)的基础,然后愿意用python写东西就很快上手的,并不需要特地去看教程. 解决

[Python学习] 专题一.函数的基础知识

        最近才开始学习Python语言,但就发现了它很多优势(如语言简洁.网络爬虫方面深有体会).我主要是通过<Python基础教程>和"51CTO学院 智普教育的python视频"学习,在看视频中老师讲述函数知识的时候觉得非常不错,所以就写了第一篇Python学习的文章分享给大家.主要内容:        1.Python安装与基本输入输出,print()函数和raw_input()函数简单用法.         2.我根据视频中学到的知识,讲解函数的基本知识:

一个python学习中的问题

问题描述 一个python学习中的问题 Below your existing code, define a function called rental_car_cost with an argument called days. Calculate the cost of renting the car: Every day you rent the car costs $40. if you rent the car for 7 or more days, you get $50 off

王亟亟的Python学习之路(四)-循环,条件,Range,list和tuple

转载请注明出处:王亟亟的大牛之路 这是本次Python学习历程的第4篇,之前的文章:传送门 这篇主要讲以下几个知识点 - 循环 - 条件语句 - range函数 - list - tuple 循环 Python中的循环语句有 for 和 while.同样需要注意冒号和缩进.另外,在Python中没有do..while循环. 需要注意冒号和缩进,因为没有{}来帮助我们把循环里面的内容封起来 while循环 while 判断逻辑: 业务内容 或者for-in循环 names = ['12',12,

python类的继承

python 类的继承 对于许多文章讲解python类的继承,大多数都是说一些什么oop,多态等概念,我认为这样可能对有一定基础的开发者帮助不是那么大,不如直接用在各种情况下所写的代码,来展示对于某一种代码情况,代码运行会有什么效果.这样可能对开发者的帮助更大.不说废话,直接上代码. 这里不区分经典类和新式类,下面分析的对新式类和经典类都适用 对于类中的__init__函数,只是一个初始化是调用的一个函数(ps:初始化和创建实例并不是一个过程,实例的创建是通过一个create函数来完成的),如果

《贝叶斯思维:统计建模的Python学习法》——导读

前言 贝叶斯思维:统计建模的Python学习法 学习之道 这本书以及Think系列其他书籍的一个前提是:只要懂得编程,你就能用这个技能去学习其他的内容 . 绝大多数贝叶斯统计的书使用数学符号并以数学概念的形式表示数学思想,比如微积分.但本书使用了Python代码而不是数学,离散近似而不是连续数学.结果就是原本需要积分的地方变成了求和,概率分布的大多数操作变成了简单的循环. 我认为这样的表述是易于理解的,至少对于有编程经验的人们来说是这样的.当作建模选择时也非常实用,因为我们可以选取最合适的模型而

[python学习] 模仿浏览器下载CSDN源文并实现PDF格式备份

        最近突然想给自己的博客备份下,看了两个软件:一个是CSDN博客导出软件,好像现在不能使用了:一个是豆约翰博客备份专家,感觉都太慢,而且不灵活,想单独下一篇文章就比较费时.而且我的毕业论文是基于Python自然语言相关的,所以想结合前面的文章用Python实现简单的功能:         1.通过网络下载本体的博客,包括图片:         2.在通过Python把HTML转换成PDF格式:         3.如果可能,后面可能会写文章对代码采用特定的方式进行处理.     

Python学习笔记(一)(基础入门之环境搭建)_python

  Python入门       本系列为Python学习相关笔记整理所得,IT人,多学无害,多多探索,激发学习兴趣,开拓思维,不求高大上,只求懂点皮毛,作为知识储备,不至于落后太远.      本文主要介绍Python的相关背景,环境搭建. 一.了解Python      1,关于Python的语言特点:      借用Python官网Https://www.python.org的解释: Python is powerful... and fast; plays well with other

《贝叶斯思维:统计建模的Python学习法》一第2章 统计计算2.1 分布

第2章 统计计算 贝叶斯思维:统计建模的Python学习法 2.1 分布 在统计上,分布是一组值及其对应的概率. 例如,如果滚动一个六面骰子,可能的值是数字1至6,与每个值关联的概率是1/6. 再举一个例子,你应该有兴趣了解在日常的英语使用中每个单词出现的次数.你可以建立一个包含每个字及它出现的次数的分布. 为了表示Python中的分布,可以使用一个字典映射某个值和它的概率.我编写了一个名为Pmf的类,利用Python字典实现了上述功能,而且提供了一些有用的方法.为了对应概率质量函数这种分布的数