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中转换角度为弧度的radians()方法
May 18 Python
python进阶_浅谈面向对象进阶
Aug 17 Python
Python安装Numpy和matplotlib的方法(推荐)
Nov 02 Python
Flask解决跨域的问题示例代码
Feb 12 Python
Django 跨域请求处理的示例代码
May 02 Python
Python3.5 处理文本txt,删除不需要的行方法
Dec 10 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
Aug 18 Python
使用Python脚本zabbix自定义key监控oracle连接状态
Aug 28 Python
Python 爬虫实现增加播客访问量的方法实现
Oct 31 Python
python 装饰器的使用示例
Oct 10 Python
彻底解决pip下载pytorch慢的问题方法
Mar 01 Python
5行Python代码实现一键批量扣图
Jun 29 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
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
2014/01/14 PHP
thinkphp实现图片上传功能分享
2014/03/04 PHP
ThinkPHP跳转页success及error模板实例教程
2014/07/17 PHP
php中convert_uuencode()与convert_uuencode函数用法实例
2014/11/22 PHP
详解PHP中的状态模式编程
2015/08/11 PHP
Mozilla中显示textarea中选择的文字
2006/09/07 Javascript
ExtJS GTGrid 简单用户管理
2009/07/01 Javascript
一个cssQuery对象 javascript脚本实现代码
2009/07/21 Javascript
学习ExtJS Panel常用方法
2009/10/07 Javascript
JavaScrip单线程引擎工作原理分析
2010/09/04 Javascript
10个基于Jquery的幻灯片插件教程
2010/10/29 Javascript
正则表达式搭配js轻松处理json文本方便而老古
2013/02/17 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
2013/12/05 Javascript
利用jquery.qrcode在页面上生成二维码且支持中文
2014/02/12 Javascript
JavaScript数据类型检测代码分享
2015/01/26 Javascript
JSON 数据详解及实例代码分析
2017/01/20 Javascript
jQuery实现简单的回到顶部totop功能示例
2017/10/16 jQuery
Vue2.0系列之过滤器的使用
2018/03/01 Javascript
webstrom Debug 调试vue项目的方法步骤
2018/07/17 Javascript
vue富文本框(插入文本、图片、视频)的使用及问题小结
2018/08/17 Javascript
Python中使用strip()方法删除字符串中空格的教程
2015/05/20 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
2020/06/03 Python
在python下实现word2vec词向量训练与加载实例
2020/06/09 Python
让你相见恨晚的十个Python骚操作
2020/11/18 Python
欧迪办公美国官网:Office Depot
2016/08/22 全球购物
香港优质食材和美酒专门店:FoodWise
2017/09/01 全球购物
美国眼镜网站:LensCrafters
2020/01/19 全球购物
到底Java是如何传递参数的?是by value或by reference?
2012/07/13 面试题
描述内存分配方式以及它们的区别
2016/10/15 面试题
高级销售求职信
2014/02/21 职场文书
初三新学期计划书
2014/05/03 职场文书
建设工程授权委托书
2014/09/22 职场文书
应收账款管理制度
2015/08/06 职场文书
2016计算机专业毕业生自荐信
2016/01/28 职场文书
导游词之河北白洋淀
2020/01/15 职场文书
详解Vue3使用axios的配置教程
2022/04/29 Vue.js