首先建一个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

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

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

    面向对象编程 在python中,同样是类和对象作为重要的组成部分. 而且在python中基本数据类型如int都是有封装类的,都有自己的方法,应该是和java里面的Integer类似吧 类包括域和方法: ...

  2. Python3学习之路~3.2 递归、函数式编程、高阶函数、匿名函数、嵌套函数

    1 递归 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. def calc(n): print(n) if int(n / 2) == 0: return n r ...

  3. Python3学习之路~0 目录

    目录 Python3学习之路~2.1 列表.元组操作 Python3学习之路~2.2 简单的购物车程序 Python3学习之路~2.3 字符串操作 Python3学习之路~2.4 字典操作 Pytho ...

  4. Dart编程实例 - Dart 面向对象编程

    Dart编程实例 - Dart 面向对象编程 class TestClass { void disp() { print("Hello World"); } } void main ...

  5. Python3学习之路~6.6 类的继承

    Inheritance 继承 面向对象编程 (OOP) 语言的一个主要功能就是“继承”.继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展.通过继承创 ...

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

    编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程,一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多种 ...

  7. Python3学习之路~8.2 socket简单实例 实现ssh 发送大量数据

    实例1: 利用socket模拟客户端和服务器端各自收发一次数据: #Author:Zheng Na # 客户端 import socket # 声明socket类型,同时生成socket连接对象 cl ...

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

    类变量 VS 实例变量 #Author:Zheng Na # 实例里面可以查询.增加.删除.修改实例变量 class Role: # 类名 # 类变量 name = '我是类name' n=1 n_l ...

  9. Python3学习之路~8.5 SocketServer实现多并发

    前面几节我们写的socket都只能实现服务端与一个客户端通信,并不能实现服务端与多客户端同时通信.接下来我们就来学习一下如何实现服务端同时与多个客户端通信,即并发. Socket Server soc ...

随机推荐

  1. 设计模式-结构型模式,python桥接模式

    桥接模式 桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化.这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦. 这种模式涉及到一个作为桥接 ...

  2. [OpenCV] Samples 14: kalman filter

    Ref: http://blog.csdn.net/gdfsg/article/details/50904811 #include "opencv2/video/tracking.hpp&q ...

  3. [React] 15 - Redux: practice IM

    本篇属于私人笔记. client 引导部分 一.assets: 音频,图片,字体 ├── assets │ ├── audios │ ├── fonts │ └── images 二.main&quo ...

  4. 【PostgresSQL】同时更新两个表

    UPDATE table1 SET column = value FROM table2 WHERE table1.column2 = table2.column2

  5. IntellIJ IDEA 启动 参数 配置

    系统环境: 型号名称: MacBook Pro型号标识符: MacBookPro11,4处理器名称: Intel Core i7处理器速度: 2.8 GHz处理器数目: 1核总数: 4L2 缓存(每个 ...

  6. mysql基础---->mybatis的批量插入(一)

    这里面记录一下使用mybatis处理mysql的批量插入的问题,测试有可能不准.只愿世间风景千般万般熙攘过后,字里行间,人我两忘,相对无言. mybatis的批量插入 我们的测试主体类是springb ...

  7. J - Intersection

    来源poj 1410 You are to write a program that has to decide whether a given line segment intersects a g ...

  8. C# 各类常见Exception 异常信息

    一直对报错有些迷惑的地方,什么时候try,catch那些Exception更合适,报错信息更能快速定位问题所在... 转载链接← 正文 Exception: 所有异常对象的基类. SystemExce ...

  9. vim操作表

  10. OC,nil,NULL,Nil,kCFNull

    YYModel源码中有一句:kCFNull //解析model属性并附值 + (instancetype)yy_modelWithDictionary:(NSDictionary *)dictiona ...