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实现批量解析邮件并下载附件
Jun 19 Python
Python logging模块用法示例
Aug 28 Python
python中单例常用的几种实现方法总结
Oct 13 Python
python进行TCP端口扫描的实现
Dec 21 Python
Python使用Pickle模块进行数据保存和读取的讲解
Apr 09 Python
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
Jun 04 Python
使用pandas读取文件的实现
Jul 31 Python
基于YUV 数据格式详解及python实现方式
Dec 09 Python
python3 使用traceback定位异常实例
Mar 09 Python
Jupyter notebook 启动闪退问题的解决
Apr 13 Python
python实现企业微信定时发送文本消息的示例代码
Nov 24 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
Mar 04 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
Terran兵种介绍
2020/03/14 星际争霸
无数据库的详细域名查询程序PHP版(3)
2006/10/09 PHP
iis6+javascript Add an Extension File
2007/06/13 Javascript
javascript入门·对象属性方法大总结
2007/10/01 Javascript
jquery的Theme和Theme Switcher使用小结
2010/09/08 Javascript
浅析Prototype的模板类 Template
2011/12/07 Javascript
JavaScript基础知识之数据类型
2012/08/06 Javascript
JQuery AJAX 中文乱码问题解决
2013/06/05 Javascript
RequireJS入门一之实现第一个例子
2015/09/30 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
2015/10/01 Javascript
Node.js 异步异常的处理与domain模块解析
2017/05/10 Javascript
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
Vue插值、表达式、分隔符、指令知识小结
2018/10/12 Javascript
jquery ajax 请求小技巧实例分析
2019/11/11 jQuery
[41:08]2014 DOTA2国际邀请赛中国区预选赛 HGT VS NE
2014/05/22 DOTA
举例介绍Python中的25个隐藏特性
2015/03/30 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
2017/10/16 Python
Python实现去除列表中重复元素的方法总结【7种方法】
2019/02/16 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
2019/05/13 Python
Selenium基于PIL实现拼接滚动截图
2020/04/10 Python
python实现猜单词游戏
2020/05/22 Python
快速解释如何使用pandas的inplace参数的使用
2020/07/23 Python
python语言time库和datetime库基本使用详解
2020/12/25 Python
python爬虫基础之urllib的使用
2020/12/31 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
详解如何获取localStorage最大存储大小的方法
2020/05/21 HTML / CSS
Vision Direct比利时:在线订购隐形眼镜
2019/08/27 全球购物
财务会计专业推荐信
2013/11/30 职场文书
女大学生自我鉴定
2013/12/09 职场文书
新闻学专业个人求职信写作
2014/02/04 职场文书
学生安全教育材料
2014/02/14 职场文书
中国好声音华少广告词
2014/03/17 职场文书
2014年国庆节活动总结
2014/08/26 职场文书
教师党的群众路线教育实践活动个人整改措施
2014/11/04 职场文书
交互式可视化js库gojs使用介绍及技巧
2022/02/18 Javascript
vue3 自定义图片放大器效果的示例代码
2022/07/23 Vue.js