zoukankan      html  css  js  c++  java
  • python面向对象编程学习

    python面向对象编程

    • 基本概念理解
    1. 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。
    2. 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。
    3. 而面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递。
    4. 面向对象的设计思想是抽象出Class,根据Class创建Instance
    • 类与实例

        #对象
        class Student(object):
        	def __init__(self, name, score):
        		self.name = name;
        		self.score = score;
        	def print_score(self):
        		print('%s: %s' % (self.name, self.score));
        	def get_grade(self):
        		if self.score >= 90:
        			return 'A';
        		elif self.score >= 60:
        			return 'B';
        		else:
        			return 'C';
        
        bart = Student("yehui", 99);
        lisa = Student("yehui01", 55);
        bart.print_score();
        lisa.print_score();
        print(lisa.get_grade());
        # 注意到__init__方法的第一个参数永远是self,
        # 表示创建的实例本身,因此,在__init__方法内部,
        # 就可以把各种属性绑定到self,因为self就指向创建的实例本身。
      
    • 访问限制
      如果我们不想让对象的实例的属性值被外部代码修改的话,我们就可以把属性的名称前面加上两个下划线__,实例的变量名如果以下划线 开头,那么他就是一个私有变量

    • 继承与多态
      在面向对象编程的语言中,继承是其主要的特性之一(封装、多态、继承),在python中,他的面向对象编程的继承和c++等面向对象语言相类似,就是子类可以继父类的属性和方法,通过继承,子类获得了父类的全部功能。我就不总结了,下面是他的继承方式及格式:

        #继承
        class Animal(object):
        	def run(self):
        		print("Animal is running...");
        
        class Dog(Animal):
            def run(self):
            	print("Dog is running...");
        
        class Cat(Animal):
        	def eat(self):
        		print("Cat is meating...");
        
        class Pig(Animal):
        	pass;
        
        dog = Dog();
        dog.run();
        cat = Cat();
        cat.run();
        cat.eat();
        pig = Pig();
        pig.run();
        # Dog is running...
        # Animal is running...
        # Cat is meating...
        # Animal is running...
      
      你可以自己在给继承父类的子类添加方法和属性,也可也不添加。也可以重写父类的方法,这样子类的方法将会覆盖掉父类的方法。这就是继承的一个好处:**多态**。
      
        #多态
        def run_twice(animal):
        	animal.run();
        	animal.run();
        run_twice(Animal());
        run_twice(Dog());
        # Animal is running...
        # Animal is running...
        # Dog is running...
        # Dog is running...
      

      python多态允许我们新增父类的子类。对修改封闭:不需要修改依赖Animal类型的run_twice()等函数。

      Python是动态语言来说,则不一定需要传入Animal类型。我们只需要保证传入的对象有一个run()方法就可以了

    • 获取对象信息
      通过python内置的一系列函数,我们可以对任意一个对象进行剖析

    1. 使用 type()函数判断对象的类型;
    2. 使用isinstance()来判断类class的继承类型;
    3. 使用dir()函数获取一个对象的所以属性和方法。

    总结

    python的面向对象编程的思想和其他的面向对象程序语言大同小异,只不过是写法和用法的有差异而已,我因为之前有学过c++,所以在这部分的学习比较粗略。

  • 相关阅读:
    vue事件处理器--v-on
    vue循环-- v-for
    node-Socket编程
    JsonWebToken
    Mongodb 数据库
    Nodejs库-EXPRESS
    yarn和npm的区别
    Vue学习笔记【22】——Vue中的动画(列表的排序过渡)
    Vue学习笔记【21】——Vue中的动画(v-for 的列表过渡)
    Vue学习笔记【20】——Vue中的动画(使用动画钩子函数)
  • 原文地址:https://www.cnblogs.com/yehui-mmd/p/7922468.html
Copyright © 2011-2022 走看看