Python3学习之路~6.2 实例演示面向对象编程的好处

首先建一个dog类,实例化为3个dog对象,并让它们都叫。

class Dog:
    def bulk(self):
        print("xiaohuang:wang wang wang !")

d1 = Dog()
d2 = Dog()
d3 = Dog()

d1.bulk()
d2.bulk()
d3.bulk()

# 运行结果:
# xiaohuang:wang wang wang !
# xiaohuang:wang wang wang !
# xiaohuang:wang wang wang !

从运行结果来看,只有一个小黄狗在叫,那么我们如何将其变为3个狗呢?可以传参数。

class Dog:
    def __init__(self,name):
        self.name = name

    def bulk(self):
        print("%s:wang wang wang !"%self.name)

d1 = Dog(‘Alice‘)
d2 = Dog(‘Bob‘)
d3 = Dog(‘Cendy‘)

d1.bulk()
d2.bulk()
d3.bulk()

# 运行结果:
# Alice:wang wang wang !
# Bob:wang wang wang !
# Cendy:wang wang wang !

好了,到这里你就可以看出面向对象编程的好处了。那就是OOP可以使程序更加容易扩展和易更改。

下面我们再举一个开发简单版CS游戏的例子。哈哈,这里我就不赘述了,初学者可以去看老师的博客:

https://www.cnblogs.com/alex3714/articles/5188179.html

原文地址:https://www.cnblogs.com/zhengna/p/9597043.html

时间: 2024-10-09 22:08:43

Python3学习之路~6.2 实例演示面向对象编程的好处的相关文章

python学习之路-第七天-python面向对象编程简介

面向对象编程 在python中,同样是类和对象作为重要的组成部分. 而且在python中基本数据类型如int都是有封装类的,都有自己的方法,应该是和java里面的Integer类似吧 类包括域和方法:域也就是类或对象中的变量,方法就是类里面声明的函数 self关键字: 相当于java中的this,下面是个例子: #!/usr/bin/python # Filename: method.py class Person: def sayHi(self): print 'Hello, how are

Python3学习之路~6.1 编程范式:面向过程 VS 面向对象

编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程,一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多种不同的方式,对这些不同的编程方式的特点进行归纳总结得出来的编程方式类别,即为编程范式.不同的编程范式本质上代表对各种类型的任务采取的不同的解决问题的思路, 大多数语言只支持一种编程范式,当然也有些语言可以同时支持多种编程范式.两种最重要的编程范式分别是面向过程编程和面向对象编程. 面向过程编程(Pr

Python3学习之路~6.3 类变量 VS 实例变量

类变量 VS 实例变量 #Author:Zheng Na # 实例里面可以查询.增加.删除.修改实例变量 class Role: # 类名 # 类变量 name = '我是类name' n=1 n_list=[] def __init__(self,name,role,weapon,life_value=100,money=15000): # 构造函数 # 在实例化时做一些类的初始化的工作 # 开辟一块内存,将下面这些变量传进去 self.name = name # 实例变量(静态属性),作用域

MySQL学习之路:多实例无法启动排错

由于我们的服务器会借给我们部分公司使用,但是部分公司有没有运维,都是开发直接操作,导致出现一些问题后直接来找我处理.为此,也学习到很多. 近来,一哥们由于不知道操作什么导致服务器直接挂掉,于是我联系机房启动机器后查看日志,没有发现什么明显的日志,只是有一条watchdog的日志信息.于是又多方搜寻关于watchdog的相关知识.发现的也大致是皮毛而已,也有部分提交一些内核信息是关于watchdog的bug.此处也无法做什么排查的(主要还是我的技术不精).只能推测是开发使用应用程序触发了watch

Python3学习之路~10.2 协程、Greenlet、Gevent

一 协程 协程,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程. 协程拥有自己的寄存器上下文和栈.协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈.因此: 协程能保留上一次调用时的状态(即所有局部状态的一个特定组合),每次过程重入时,就相当于进入上一次调用的状态,换种说法:进入上一次离开时所处逻辑流的位置. 协程的好处: 无需线程上下文切换的开销 无需原子操作锁定及同步的开销 "原子操作(atomic

python3学习之路(目录)

一.Python学习(第一章) 1.python入门 -->第一个python程序 -->注释 -->变量 -->输入输出 -->流程控制 -->while循环 -->练习题 2.运算符 -->算数运算 -->比较运算 -->赋值运算 -->逻辑运算 -->成员运算 3.基本数据类型 -->整型 -->布尔型 -->字符串 -->列表 -->元组 -->字典 -->练习题 目录 持续更新中..

Python3学习之路~5.7 Json & pickle 模块

用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换 pickle,用于python特有的类型 和 python的数据类型间进行转换 Json模块提供了四个功能:dumps.dump.loads.load pickle模块提供了四个功能:dumps.dump.loads.load json.dumps 将数据通过特殊的形式转换为所有程序语言都认识的字符串 json.dump 将数据通过特殊的形式转换为所有程序语言都认识的字符串,并写入文件 pickle.dumps 将数

Python3学习之路~7.1 静态方法、类方法、属性方法

静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量,但静态方法是不可以访问实例变量或类变量的,一个不能访问实例变量和类变量的方法,其实相当于跟类本身已经没什么关系了,它与类唯一的关联就是需要通过类名来调用这个方法. 下面的调用会出以下错误,说是eat需要一个self参数,但调用时却没有传递,没错,当eat变成静态方法后,再通过实例调用时就不会自动把

Python3学习之路~7.2 类的特殊成员方法

1. __doc__ 表示类的描述信息 class Dog(object): """ 这个类是描述狗这个对象的 """ def func(self): pass print(Dog.__doc__) # 输出: 这个类是描述狗这个对象的 2. __module__ 和  __class__  __module__ 表示当前操作的对象在哪个模块 __class__     表示当前操作的对象的类是什么 class C: def __init__(s