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遍历文件夹并删除特定格式文件的示例
Mar 05 Python
Python性能优化技巧
Mar 09 Python
举例讲解Python的lambda语句声明匿名函数的用法
Jul 01 Python
Python中运算符"=="和"is"的详解
Oct 08 Python
python中numpy.zeros(np.zeros)的使用方法
Nov 07 Python
Django之无名分组和有名分组的实现
Apr 16 Python
Python读写文件模式和文件对象方法实例详解
Sep 17 Python
Django框架下静态模板的继承操作示例
Nov 08 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
Nov 08 Python
Django调用支付宝接口代码实例详解
Apr 04 Python
Pycharm调试程序技巧小结
Aug 08 Python
python中super()函数的理解与基本使用
Aug 30 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
THINKPHP+JS实现缩放图片式截图的实现
2010/03/07 PHP
Linux下安装oracle客户端并配置php5.3
2014/10/12 PHP
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
2015/12/19 PHP
PHP函数shuffle()取数组若干个随机元素的方法分析
2016/04/02 PHP
php打包压缩文件之ZipArchive方法用法分析
2016/04/30 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
2017/02/17 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
让您的菜单不离网站
2006/10/03 Javascript
jquery实现带单选按钮的表格行选中时高亮显示
2013/08/01 Javascript
jquery实现图片裁剪思路及实现
2013/08/16 Javascript
AngularJS实践之使用ng-repeat中$index的注意点
2016/12/22 Javascript
微信小程序 网络请求(post请求,get请求)
2017/01/17 Javascript
jQuery实现元素的插入
2017/02/27 Javascript
js for循环倒序输出数组元素的实例
2017/03/01 Javascript
浅谈Node模块系统及其模式
2017/11/17 Javascript
vue中如何使用ztree
2018/02/06 Javascript
vue实现设置载入动画和初始化页面动画效果
2019/10/28 Javascript
跟老齐学Python之用Python计算
2014/09/12 Python
Python的Scrapy爬虫框架简单学习笔记
2016/01/20 Python
基于Python实现签到脚本过程解析
2019/10/25 Python
Python代码生成视频的缩略图的实例讲解
2019/12/22 Python
如何在windows下安装Pycham2020软件(方法步骤详解)
2020/05/03 Python
Python使用pdb调试代码的技巧
2020/05/03 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
pycharm 使用anaconda为默认环境的操作
2021/02/05 Python
HTML5实现多张图片上传功能
2016/03/11 HTML / CSS
中国酒类在线零售网站:酒仙网
2016/08/20 全球购物
皇家阿尔伯特瓷器美国官网:Royal Albert美国
2020/02/16 全球购物
CK澳大利亚官网:Calvin Klein澳大利亚
2020/12/12 全球购物
凌阳科技股份有限公司C++程序员面试题笔试题
2014/11/20 面试题
大学生期末自我鉴定
2014/02/01 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
四年级学生期末评语
2014/12/26 职场文书
学校隐患排查制度
2015/08/05 职场文书
2016年小学党支部创先争优活动总结
2016/04/05 职场文书
小学作文之描写天气
2019/08/15 职场文书