Python类的定义、继承及类对象使用方法简明教程

Python编程中类的概念可以比作是某种类型集合的描述,如“人类”可以被看作一个类,然后用人类这个类定义出每个具体的人——你、我、他等作为其对象。类还拥有属性和功能,属性即类本身的一些特性,如人类有名字、身高和体重等属性,而具体值则会根据每个人的不同;功能则是类所能实现的行为,如人类拥有吃饭、走路和睡觉等功能。具体的形式如下:

# 例:类的概念
class 人类:
  名字 = '未命名' # 成员变量
  def 说话(内容): # 成员函数
    print 内容      # 成员变量赋初始值 

某人 = 人类()    # 定义一个人类对象某人
某人.名字 = "路人甲"
某人.说话  ('大家好')  # 路人甲说话
>>> 大家好!      # 输出

Python中定义和使用类的形式为:class 类名[(父类名)]:[成员函数及成员变量],类名为这个类的名称,而父类名为可选,但定义父类名后,子类则拥有父类的相应属性和方法。在用类定义成对象时,会先调用__init__构造函数,以初始化对象的各属性,类的各属性(成员变量)均可以在构造函数中定义,定义时只要加上对象指针就好了。而在对象销毁时,则会调用__del__析构函数,定义类的成员函数时,必须默认一个变量(类似于C++中的this指针)代表类定义的对象本身,这个变量的名称可自行定义,下面例子将使用self变量表示类对象变量。

# 例:类定义及使用
class CAnimal:
  name = 'unname' # 成员变量
  def __init__(self,voice='hello'):  # 重载构造函数
    self.voice = voice      # 创建成员变量并赋初始值
  def __del__(self):       # 重载析构函数
    pass        # 空操作
  def Say(self):
    print self.voice

t = CAnimal()    # 定义动物对象t
t.Say()    # t说话
>> hello      # 输出
dog = CAnimal('wow')  # 定义动物对象dog
dog.Say()      # dog说话
>> wow      # 输出

Python编程中类可以承继父类属性,形式为class 类名(父类),子类可以继承父类的所有方法和属性,也可以重载父类的成员函数及属性,须注意的是子类成员函数若重载父类(即名字相同),则会使用子类成员函数

# 例:类的继承
class CAnimal:
  def __init__(self,voice='hello'): # voice初始化默认为hello
    self.voice = voice
  def Say(self):
    print self.voice
  def Run(self):
    pass  # 空操作语句(不做任何操作)

class CDog(CAnimal):    # 继承类CAnimal
  def SetVoice(self,voice): # 子类增加函数SetVoice
    self.voice = voice
  def Run(self,voice): # 子类重载函数Run
    print 'Running'

bobo = CDog()
bobo.SetVoice('My Name is BoBo!')   # 设置child.data为hello
bobo.Say()
bobo.Run()

>> My Name is BoBo!
>> Running
(0)

相关推荐

  • 跟老齐学Python之编写类之一创建实例

    说明:关于类的这部分,我参考了<Learning Python>一书的讲解. 创建类 创建类的方法比较简单,如下: 复制代码 代码如下: class Person: 注意,类的名称一般用大写字母开头,这是惯例.当然,如果故意不遵循此惯例,也未尝不可,但是,会给别人阅读乃至于自己以后阅读带来麻烦.既然大家都是靠右走的,你就别非要在路中间睡觉了. 接下来,一般都要编写构造函数,在写这个函数之前,先解释一下什么是构造函数. 复制代码 代码如下: class Person:     def __ini

  • Python中类的定义、继承及使用对象实例详解

    本文实例讲述了Python中类的定义.继承及使用对象的方法.分享给大家供大家参考.具体分析如下: Python编程中类的概念可以比作是某种类型集合的描述,如"人类"可以被看作一个类,然后用人类这个类定义出每个具体的人--你.我.他等作为其对象.类还拥有属性和功能,属性即类本身的一些特性,如人类有名字.身高和体重等属性,而具体值则会根据每个人的不同:功能则是类所能实现的行为,如人类拥有吃饭.走路和睡觉等功能.具体的形式如下: 例:类的概念: class 人类:             

  • Python类定义和类继承详解

    一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性 如果直接使用类名修改其属性,那么将直接影响到已经实例化的对象   类的私有属性: __private_attrs  两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问 在类内部的方法中使用时 self.__private_attrs    类的方法 在类地内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数self,

  • 举例讲解Python中metaclass元类的创建与使用

    元类是可以让你定义某些类是如何被创建的.从根本上说,赋予你如何创建类的控制权. 元类也是一个类,是一个type类.   元类一般用于创建类.在执行类定义时,解释器必须要知道这个类的正确的元类,如果此属性没有定义,它会向上查找父类中的__metaclass__属性.如果还没发现,就查找全局变量.   对于传统类来说,它们的元类是types.ClassType.   元类也有构造器,传递三个参数:类名,从基类继承数据的元组,和类属性字典. 下面我们来定义一个元类,要求写类的时候必须给类提供一个__s

  • Python实现类的创建与使用方法示例

    本文实例讲述了Python实现类的创建与使用方法.分享给大家供大家参考,具体如下: #coding=utf8 #为了使除法总是会返回真实的商,不管操作数是整形还是浮点型. from __future__ import division ''''' 类是面向对象编程的核心,它扮演相关数据及逻辑的容器角色. 定义类语法: class ClassName(base_class[es]): "optional documentation string" static_member_declar

  • python基础教程之类class定义使用方法

    面对对象(oop)中的对象,是一个非常重要的知识点,我们可以把它简单看做是数据以及由存取.操作这些数据的方法所组成的一个集合.我们在学习函数(function)之后,知道了如果重用代码,那为什么还要用类来取代函数呢? 类有这样一些的优点 1) .类对象是多态的:也就是多种形态,这意味着我们可以对不同的类对象使用同样的操作方法,而不需要额外写代码. 2).类的封装:封装之后,可以直接调用类的对象,来操作内部的一些类方法,不需要让使用者看到代码工作的细节. 3).类的继承:类可以从其它类或者元类中继

  • Python中动态创建类实例的方法

    简介 在Java中我们可以通过反射来根据类名创建类实例,那么在Python我们怎么实现类似功能呢? 其实在Python有一个builtin函数import,我们可以使用这个函数来在运行时动态加载一些模块.如下: def createInstance(module_name, class_name, *args, **kwargs): module_meta = __import__(module_name, globals(), locals(), [class_name]) class_met

  • python类:class创建、数据方法属性及访问控制详解

    在Python中,可以通过class关键字定义自己的类,然后通过自定义的类对象类创建实例对象. python中创建类 创建一个Student的类,并且实现了这个类的初始化函数"__init__": class Student(object):     count = 0     books = []     def __init__(self, name):         self.name = name 接下来就通过上面的Student类来看看Python中类的相关内容. 类构造和

  • 在Python中定义和使用抽象类的方法

    像java一样python也可以定义一个抽象类. 在讲抽象类之前,先说下抽象方法的实现. 抽象方法是基类中定义的方法,但却没有任何实现.在java中,可以把方法申明成一个接口.而在python中实现一个抽象方法的简单的方法是: class Sheep(object): def get_size(self): raise NotImplementedError 任何从Sheep继承下来的子类必须实现get_size方法.否则就会产生一个错误.但这种实现方法有个缺点.定义的子类只有调用那个方法时才会

  • python通过定义一个类实例作为ftp回调方法

    本文实例讲述了python通过定义一个类实例作为ftp回调方法.分享给大家供大家参考.具体实现方法如下: class Writer: def __init__(self, file): self.f = open(file, "w") def __call__(self, data): self.f.write(data) self.f.write('\n') print data FILENAME = "AutoIndent.py" writer = Writer

  • python自定义类并使用的方法

    本文实例讲述了python自定义类并使用的方法.分享给大家供大家参考.具体如下: class Person: def __init__(self, first, middle, last, age): self.first = first; self.middle = middle; self.last = last; self.age = age; def __str__(self): return self.first + ' ' + self.middle + ' ' + self.las

  • python类定义的讲解

    一.类定义: 复制代码 代码如下: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性.如果直接使用类名修改其属性,那么将直接影响到已经实例化的对象 类的私有属性: __private_attrs  两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问.在类内部的方法中使用时 self.__private_attrs类的方法 在类地内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数

随机推荐