码迷,mamicode.com
首页 > 编程语言 > 详细

Python面向对象

时间:2020-02-11 19:16:05      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:运行   面向对象   self   running   对象   首字母   集合   就会   其他   

#最近在根据廖雪峰老师的python学习课程学习,以下是在学习过程中做的一些学习总结

1、面向对象简介

  在一个python程序中会存在很多的函数,多个函数组成一个类,多个类构成一个程序。

  类(class):一个具有相同方法和属性的集合。

  通过class来声明一个类,类名呢首字母需要大写

  数据成员:类变量、实例变量

  继承:即一个新类继承一个现有的class,被继承的被称为父类、基类、超类(base class 、super class)

  方法:类中定义的函数

  对象:类定义的属性和方法;对象是类的实例

2、创建一个类

class ClassName(object):    
    pass

  (object) 表示该类是从哪一类继承下的,如果没有合适继承的类,则可以使用object,这是所有类最终都会继承的类。

   实例:

class ClassName(object):
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def print_init(self):
        print(%s :%s % (self.name,self.age))

  1、__init__:是一种特殊方法,他并不执行而是为ClassName类设置一个必须的属性

  2、print_init():是ClassName的一个方法

  运行

>>>bart = Student(bart,25)
>>>bart.name
bart
>>>bart.age
25

  3、当__init__执行时实例就已经创造,bart就是一个实例

3、继承

  比如我们已经有了一个类

class Animal(object):
    def func(self):
        print(Animal)

  我们还需要编写其他类时:

class Dog(Animal):
    pass
class Cat(Animal):
    pass

  我们新创建的子类,也就是Dog,Cat,如果我们运行会出现什么?

>>>dog=Dog()
>>>dog.run()
Animal
>>>cat=Cat()
>>>cat.run
Animal

  子类继承父类的所有方法。虽然子类没有定义方法,但是父类定义了run()方法,所以子类也同样具有run方法。

  当然,我们也可以对子类进行一些修改:

class Dog(Animal):
    def run(self):
        print(Dog)
class Cat(Animal):
    def run(self):
        print(Cat)

  我们在子类中声明一个run()方法,再次运行:

>>>dog=Dog()
>>>dog.run()
Dog
>>>cat = Cat()
>>>cat.run()
Cat

  可以看出执行了子类中定义的方法。当子类和父类都存在run()方法时,子类的方法覆盖了父类,在代码运行时总会调用子类这样就构成了多态

4、多态

  什么是多态呢?多态就是只要是继承父类或其子类的,该方法就会自动调用父类定义的方法

class Animal(object):
    def run(self):
        print(Animal is running)
def run_twice(animal):
    animal.run()
    animal.run()

  当我们运行run_twice()函数并调用父类方法:

>>>run_twice(Animal)
Animal is running
Animal is running

  你会发现任何依赖Animal的函数或方法都可以不用修改的运行,就是因为多态。

  python作为一个动态语言不一定需要传入Animal类型,我们只需要保证对象有一个run()方法即可;这就是动态语言的“鸭子类型”,它并不要求严格的继承体系,一个对象只要“看起来像鸭子,走起路来像鸭子”,那它就可以被看做是鸭子。

  

Python面向对象

标签:运行   面向对象   self   running   对象   首字母   集合   就会   其他   

原文地址:https://www.cnblogs.com/twlr/p/12295979.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!