python类继承用法实例分析


Posted in Python onMay 27, 2015

本文实例讲述了python类继承用法。分享给大家供大家参考。具体如下:

help('object') # test
class Class1(object):
  """
  Class1 inherits the most basic container class object (just a place holder)
  this is the newer class writing convention, adding (object) is "still" optional
  """
  k = 7
  def __init__(self, color='green'):
    """
    Special method __init__() is called first (acts as Constructor).
    It brings in data from outside the class like the variable color.
    (in this case color is also set to a default value of green)
    The first parameter of any method/function in the class is always self,
    the name self is used by convention. Assigning color to self.color allows it
    to be passed to all methods within the class. Think of self as a carrier,
    or if you want impress folks call it target instance object.
    The variable k is assigned a value in the class, but outside of the methods.
    You can access k in a method using self.k
    """
    self.color = color
  def Hello1(self):
    print "Hello from Class1!"
  def printColor(self):
    """in this case self allows color to be passed"""
    print "I like the color", self.color
  def __localHello(self):
    """
    A variable or function with a double underline prefix and no or max. single
    underline postfix is considered private to the class and is not inherited or
    accessible outside the class.
    """
    print "A hardy Hello only used within the class!"
 
class Class2(Class1):
  """
  Class2 inherits Class1 (Class2 is the subclass, Class1 the base or superclass)
  Class1 has to be coded before Class2 for this to work!!!
  Class2 can now use any method of Class1, and even the variable k
  """
  def Hello2(self):
    print "Hello from Class2!"
    print self.k, "is my favorite number"
   
# the color blue is passed to __init__()
c1 = Class1('blue')
# Class2 inherited method __init__() from Class1
# if you used c2 = Class2(), the default color green would be picked
c2 = Class2('red')
print '-'*20
print "Class1 says hello:"
c1.Hello1()
print '-'*20
print "Class2 says a Class1 hello:"
c2.Hello1()
print '-'*20
print "Class2 says its own hello:"
c2.Hello2()
print '-'*20
print "Class1 color via __init__():"
c1.printColor()
print '-'*20
print "Class2 color via inherited __init__() and printColor():"
c2.printColor()
print '-'*20
print "Class1 changes its mind about the color:"
c1 = Class1('yellow') # same as: c1.__init__('yellow')
c1.printColor()
print '-'*20
print "Wonder what Class2 has to say now:"
c2.printColor()
print '-'*20
# this would give an error! Class1 does not have a method Hello2()
if hasattr(Class1, "Hello2"):
  print c1.Hello2()
else:
  print "Class1 does not contain method Hello2()"
# check inheritance
if issubclass(Class2, Class1):
  print "Class2 is a subclass of Class1, or Class2 has inherited Class1"
# you can access variable k contained in Class1
print "Variable k from Class1 =", c1.k
print '-'*20
# this would give an error! You cannot access a class private method
if hasattr(Class1, "__localHello()"):
  print c1.__localHello()
else:
  print "No access to Class1 private method __localHello()"

运行结果如下:

Help on class object in module __builtin__:

class object
 | The most base type

--------------------
Class1 says hello:
Hello from Class1!
--------------------
Class2 says a Class1 hello:
Hello from Class1!
--------------------
Class2 says its own hello:
Hello from Class2!
7 is my favorite number
--------------------
Class1 color via __init__():
I like the color blue
--------------------
Class2 color via inherited __init__() and printColor():
I like the color red
--------------------
Class1 changes its mind about the color:
I like the color yellow
--------------------
Wonder what Class2 has to say now:
I like the color red
--------------------
Class1 does not contain method Hello2()
Class2 is a subclass of Class1, or Class2 has inherited Class1
Variable k from Class1 = 7
--------------------
No access to Class1 private method __localHello()

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python基础之入门必看操作
Jul 26 Python
python如何爬取个性签名
Jun 19 Python
对python数据切割归并算法的实例讲解
Dec 12 Python
使用python获取(宜宾市地震信息)地震信息
Jun 20 Python
Python上下文管理器全实例详解
Nov 12 Python
python创建子类的方法分析
Nov 28 Python
解决Python使用列表副本的问题
Dec 19 Python
Pytorch的mean和std调查实例
Jan 02 Python
基于Python模拟浏览器发送http请求
Nov 06 Python
Ubuntu20.04环境安装tensorflow2的方法步骤
Jan 29 Python
python基于OpenCV模板匹配识别图片中的数字
Mar 31 Python
Python实现8种常用抽样方法
Jun 27 Python
python显示生日是星期几的方法
May 27 #Python
python中zip和unzip数据的方法
May 27 #Python
Python pickle模块用法实例分析
May 27 #Python
Python创建模块及模块导入的方法
May 27 #Python
Python类的用法实例浅析
May 27 #Python
Python socket编程实例详解
May 27 #Python
Python简单删除目录下文件以及文件夹的方法
May 27 #Python
You might like
在php中取得image按钮传递的name值
2006/10/09 PHP
简单的PHP多图上传小程序代码
2011/07/17 PHP
具有时效性的php加密解密函数代码
2013/06/19 PHP
探讨:如何使用PhpDocumentor生成文档
2013/06/25 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
2020/03/02 PHP
浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)
2013/07/09 Javascript
JS实现网页表格自动变大缩小的方法
2015/03/09 Javascript
JavaScript父子窗体间的调用方法
2015/03/31 Javascript
javascript实现下拉提示选择框
2015/12/29 Javascript
js+css绘制颜色动态变化的圈中圈效果
2016/01/27 Javascript
基于Vue.js实现数字拼图游戏
2016/08/02 Javascript
Vue.js双向绑定实现原理详解
2016/12/22 Javascript
nodejs入门教程六:express模块用法示例
2017/04/24 NodeJs
微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析
2019/05/03 Javascript
微信小程序拼接图片链接无底洞深入探究
2019/09/03 Javascript
js实现tab栏切换效果
2020/08/02 Javascript
python创建和使用字典实例详解
2013/11/01 Python
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
2015/03/30 Python
Python中List.index()方法的使用教程
2015/05/20 Python
numpy.random.seed()的使用实例解析
2018/02/03 Python
python3实现磁盘空间监控
2018/06/21 Python
python 按不同维度求和,最值,均值的实例
2018/06/28 Python
python: 判断tuple、list、dict是否为空的方法
2018/10/22 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
2019/12/27 Python
python实现的批量分析xml标签中各个类别个数功能示例
2019/12/30 Python
Python面向对象封装操作案例详解 II
2020/01/02 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
2020/02/25 Python
python 装饰器功能与用法案例详解
2020/03/06 Python
Shell脚本如何向终端输出信息
2014/04/25 面试题
简历的自我评价范文
2014/02/04 职场文书
大学生秋游活动方案
2014/02/17 职场文书
物控部经理职务说明书
2014/02/25 职场文书
什么是就业协议书
2014/04/17 职场文书
《金色的脚印》教后反思
2014/04/23 职场文书
商业计划书之服装
2019/09/09 职场文书