python 中面向对象编程简单总结2

1.python中继承的特点:

  (1)总是从一个类继承,默认为object类

  (2)不要忘记调用super.__init__方法来初始化父类的方法

def __init__(self,args):
    super(Subclass,self).__init__(args)
    pass

  简单例子

class Person(object):
    def __init__(self,name,gender):
        self.name = name
        self.gender = gender
class Student(Person):
    def __init__(self,name,gender,score):
        #super(Student,self)方法调用返回当前类继承的父类
        #如果没有下面的调用,那么Student类中就没有name和gender属性
        super(Student,self).__init__(name,gender)
        self.score = score
s = Student("roger","male",99)
print s.name,s.gender,s.score

2. 使用isinstance(obj,class)来判断obj是否是class类的一个实例

3.继承和多态需要注意的地方

  (1)python是动态语言,动态语言调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用。

  (2)如果实例中没有相应的方法和属性,那么它会顺着继承链向上寻找。如果是方法,它就会调用最近的方法;如果是属性,就会在实例上绑定一个属性。

  (3)多态概念一致,任何能引用父类的地方,一定能使用子类

4.定义类对象之后获取相关属性

  (1)type(obj) 返回变量类型

  (2) dir(obj) 返回变量所有属性

  (3)getattr(obj,attrname) 获取属性: attrname

  (4)setattr(obj,attrname,attrvalue): 设置新的属性

  (5)Python 中的变长参数:*args(只含值), **kwargs(包含键值对),注意到两者调用上是有区别的。

#coding=utf8
__author__ = ‘Administrator‘
# 当函数的参数不确定时,可以使用*args和**kwargs。*args没有key值,**kwargs有key值
def fun_var_args(farg, *args):
    print ‘args:‘, farg
    for value in args:
        print ‘another arg:‘,value
fun_var_args(1, ‘two‘, 3, None)
class Person(object):
    def __init__(self, name, gender, **kw):
        self.name = name
        self.gender = gender
        for k, v in kw.iteritems():
            setattr(self, k, v)
p = Person(‘Bob‘, ‘Male‘, age=18, course=‘Python‘)
print p.age
print p.course
时间: 2024-10-11 04:16:36

python 中面向对象编程简单总结2的相关文章

python 中面向对象编程简单总结3--定制类

声明:资源来自慕课网python学习课程,以下只是个人学习总结,仅供参考 1.Python类的特殊方法 特征:以  __ 开头并结尾的方法,比如用于print的__str__() , __getattr__(),__setattr__()等   不需要在代码中直接调用, Python的某些函数和操作符会自动调用. 可以自己定制实现,如__str__()方法 class Person(object): def __init__(self,name,gender): self.name = name

python 中面向对象编程简单总结1

1.类的定义方式 class ClassName(object): #object 表示继承的类,默认为object pass 类的使用类似函数的调用,也可以认为是调用了一次模板来创建一个实例. 2.创建对象的属性和方法 不同于java等语言的定义,python是动态语言,因此可以给同一个类的不同实例动态地增加不同的属性. xiaoming = Person() xiaoming.name = "xiaoming" #赋值的时候创建一个实例的属性 xiaoming.gender = &

Python 3面向对象编程

这篇是计算机类的优质预售推荐>>>><Python 3面向对象编程> 编辑推荐 本书不是Python 的入门书籍,适合具有Python 基础经验的开发人员阅读.如果你拥有其他面向对象语言的经验,你会更容易理解本书的内容. 内容简介 Python 是一种面向对象的解释型语言,面向对象是其非常重要的特性.本书通过Python 的数据结构.语法.设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念和原则.本书不是Python 的入门书籍,

C#中面向对象编程机制之多态学习笔记

C#的多态性: 我的理解是:同一个操作,作用于不同的对象时,会有不同的结果,即同一个方法根据需要,作用于不同的对象时,会有不同的实现. C#的多态包括:接口多态,继承多态. 其中继承多态又包括通过虚拟方法实现的多态和通过抽象方法实现的多态性 例如:基类动物都有吃的方法,但是不同的动物吃的东西就会不一样,例如狼吃肉,羊吃草,这样"吃"的这个方法就要在派生类里面重新实现以下,运行时,通过指向基类的指针,来调用实现派生类中的方法. 接下来举例实现多态性. 1. 接口多态性 把动物"

C#中面向对象编程机制之继承学习笔记

继承反应了类和类之间的关系. 世界上很多事物都是有共性的,共性的那一部分我们就抽象为基类,用于派生其它类,这样提高了代码的复用性,使得代码的结构清晰易读,而且易于代码的扩展和维护. C#的继承只能继承自一个基类,这一点不同于C++的继承. C#的继承具有传递性,即B继承自A,C继承自B,则C具有A的所有特性. C#的继承隐式为public的. 假如不在派生类构造器中显示调用一个基类构造器,编译器会自动插入对基类的默认构造器的一个调用,然后才会执行派生类构造器中的代码, 如果基类没有默认的构造器,

&#8203;Python中面向对象的编程

Python面向对象的编程 1概述 (1)面向对象编程 面向对象的编程是利用"类"和"对象"来创建各种模型来实现对真实世界的描述,使用面向对象编程的原因一方面是因为它可以使程序的维护和扩展变得更简单,并且可以大大提高程序开发效率,另外,基于面向对象的程序可以使它人更加容易理解你的代码逻辑,从而使团队开发变得更从容. (2)面向对象的特征 1)类(Class):一个类即是对一类拥有相同属性的对象的抽象.蓝图.原型.在类中定义了这些对象的都具备的属性(variables

python之面向对象编程浅谈

1.python中的类与对象 1 Python中定义类的方式比较简单: 2 3 class 类名: 4 5 类变量 6 7 def __init__(self,paramers): 8 9 def 函数(self,...) 10 11 …... 12 13 其中直接定义在类体中的变量叫类变量,而在类的方法中定义的变量叫实例变量.类的属性包括成员变量和方法,其中方法的定义和普通函数的定义非常类似,但方法必须以self作为第一个参数. 举例: 1 >>>class MyFirstTestCl

python中面向对象

一.Python经典类与新类 经典类:如果没有直接或间接的子类化一个对象,也就是说如果没有指定一个父类,或者是如果子类化的基本类没有父类,那么就定义了经典类: class classics: 'define a classics Class' pass 新式类:与经典类相反.object是“所有类之母”,也就是基类,如果你的类没有继承任何父类,object将作为默认的父类: class newClass(object): 'define a classics Class' pass 二.Pyth

python的面向对象编程

面向对象编程是一种程序的范式,它把程序看成是对不同对象的相互调用,对现实世界建立的一种模型. 面向对象编程的基本思想,类和实例.类用于定义抽象对象,实例根据类的定义被创建出来. 在python当中我们使用下面的方法来定义类(按照 Python 的编程习惯,类名以大写字母开头,紧接着是(object),表示该类是从哪个类继承下来的.): class Python(object): pass 我们实例化方法的话呢就使用: xaioming = Python() 在面向对象之后呢我们要进行属性的设置.