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 相关文章推荐
Cython 三分钟入门教程
Sep 17 Python
跟老齐学Python之dict()的操作方法
Sep 24 Python
python实现复制整个目录的方法
May 12 Python
Python爬虫之模拟知乎登录的方法教程
May 25 Python
Python使用matplotlib的pie函数绘制饼状图功能示例
Jan 08 Python
Numpy中的mask的使用
Jul 21 Python
Python数据库小程序源代码
Sep 15 Python
使用pytorch和torchtext进行文本分类的实例
Jan 08 Python
pyspark 随机森林的实现
Apr 24 Python
Python私有属性私有方法应用实例解析
Sep 15 Python
Python调用ffmpeg开源视频处理库,批量处理视频
Nov 16 Python
Pandas对每个分组应用apply函数的实现
Dec 13 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 字符串编码截取函数(兼容utf-8和gb2312)
2009/05/02 PHP
Smarty Foreach 使用说明
2010/03/23 PHP
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
php多个文件及图片上传实例详解
2014/11/10 PHP
PHP面向对象程序设计之命名空间与自动加载类详解
2016/12/02 PHP
javascript 对表格的行和列都能加亮显示
2008/12/26 Javascript
向左滚动文字 js代码效果
2013/08/17 Javascript
js禁止回车提交表单的示例代码
2013/12/23 Javascript
JavaScript数组常用操作技巧汇总
2014/11/17 Javascript
JavaScript实现查找字符串中第一个不重复的字符
2014/12/29 Javascript
初步了解javascript面向对象
2015/11/09 Javascript
表单验证正则表达式实例代码详解
2015/11/09 Javascript
学习JavaScript设计模式(链式调用)
2015/11/26 Javascript
jQuery悬停文字提示框插件jquery.tooltipster.js用法示例【附demo源码下载】
2016/07/19 Javascript
BootStrap无限级分类(无限极分类封装版)
2016/08/26 Javascript
ajax接收后台数据在html页面显示
2017/02/19 Javascript
JavaScript实现自动跳转文本功能
2017/05/25 Javascript
JavaScript中的E-mail 地址格式验证
2018/03/28 Javascript
用vuex写了一个购物车H5页面的示例代码
2018/12/04 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
在vue中使用vuex,修改state的值示例
2019/11/08 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
微信小程序实现比较功能的方法汇总(五种方法)
2020/03/07 Javascript
Python xlrd读取excel日期类型的2种方法
2015/04/28 Python
python如何为被装饰的函数保留元数据
2018/03/21 Python
python爬虫神器Pyppeteer入门及使用
2019/07/13 Python
python使用正则来处理各种匹配问题
2019/12/22 Python
python 链接sqlserver 写接口实例
2020/03/11 Python
使用pyplot.matshow()函数添加绘图标题
2020/06/16 Python
利用python 下载bilibili视频
2020/11/13 Python
麦当劳印度网上订餐:McDelivery
2020/03/16 全球购物
高中生学习生活的自我评价
2013/11/27 职场文书
不知如何爱孩子,这些方法教会您
2019/08/06 职场文书
MySQL中你可能忽略的COLLATION实例详解
2021/05/12 MySQL
Opencv中cv2.floodFill算法的使用
2021/06/18 Python
Spring Security中用JWT退出登录时遇到的坑
2021/10/16 Java/Android