#   面向对象的综合应用
# 计算器:实现一些基本的计算操作,已经打印结果 # --------------- 代码1 ----------------------
def add(x, y):
return x + y def subtract(x, y):
return x - y def mulit(x, y):
return x * y print(add(2, 4)) # # 实现 (2 + 4 - 3) * 5
res1 = add(2, 4)
res2 = subtract(res1, 3)
res3 = res2 * 5
print(res3) # # --------------- 代码2 -----------------------
class Caculator:
__result = 0
@classmethod
#设置一个首数
def first_value(cls, value):
cls.__result = value @classmethod
def add(cls, n):
cls.__result += n
@classmethod
def subtract(cls, n):
cls.__result -= n @classmethod
def mulit(cls, n):
cls.__result *= n @classmethod
def show(cls):
return cls.__result Caculator.first_value(2)
Caculator.add(4)
Caculator.subtract(3)
Caculator.mulit(5)
print(Caculator.show()) # # --------------- 代码3 -----------------------
class Caculator:
def __init__(self, firstNum):
self.__result = firstNum def add(self, n):
self.__result += n def subtract(self, n):
self.__result -= n def mulit(self, n):
self.__result *= n def show(self):
return self.__result c = Caculator(2)
c.add(4)
c.subtract(3)
c.mulit(5)
print(c.show()) # # --------------- 代码4 容错处理 -----------------------
class Caculator:
def __check_num_zsq(func):
def inner(self, n):
if not isinstance(n, int):
raise TypeError("数据类型错误")
return func(self, n)
return inner @__check_num_zsq
def __init__(self, firstNum):
self.__result = firstNum @__check_num_zsq
def add(self, n):
self.__result += n @__check_num_zsq
def subtract(self, n):
self.__result -= n @__check_num_zsq
def mulit(self, n):
self.__result *= n def show(self):
return self.__result c = Caculator(2)
c.add(4)
c.subtract(3)
c.mulit(5)
print(c.show()) #

Python 面向对象的综合应用的更多相关文章

  1. Python面向对象 --- 新旧式类、私有方法、类属性和类方法、静态方法

    一.Python面向对象中的新旧式类 1)新式类(推荐使用):在定义类时,类后边括号里要继承基类(object).在python3.x中若没有指定父类,会默认使用的是object作为基类:在pytho ...

  2. python 面向对象初级篇

    Python 面向对象(初级篇) 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发" ...

  3. Python 面向对象 基础

    编程范式概述:面向过程 和 面向对象 以及函数式编程 面向过程:(Procedure Oriented)是一种以事件为中心的编程思想. 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现 ...

  4. python面向对象进阶(八)

    上一篇<Python 面向对象初级(七)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使 ...

  5. python 面向对象(进阶篇)

    上一篇<Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使 ...

  6. python 面向对象编程学习

    1. 问题:将所有代码放入一个py文件:无法维护 方案:如果将代码才分放到多个py文件,好处: 1. 同一个名字的变量互相不影响 2.易于维护 3.引用模块: import module 2.包:解决 ...

  7. Python面向对象详解

    Python面向对象的"怜人之处" Python的待客之道--谁能进来 Python的封装--只给你想要的 Python的继承--到处认干爹 Python的多态--说是就是

  8. python 面向对象和类成员和异常处理

    python 面向对象 你把自己想象成一个上帝,你要创造一个星球,首先你要把它揉成一个个球,两个直径就能创造一个球 class star: '''名字(name),赤道直径(equatorial di ...

  9. python 面向对象学习

    ------Python面向对象初 下面写一个类的简单实用,以便方便理解类 #python 3.5环境,解释器在linux需要改变 #阅读手册查询readme文件 #作者:S12-陈金彭 class ...

随机推荐

  1. Laravel5.1 模型 --远层一对多关系

    远层一对多我们可以通过一个例子来充分的了解它: 每一篇文章都肯定有并且只有一个发布者 发布者可以有多篇文章,这是一个一对多的关系.一个发布者可以来自于一个国家 但是一个国家可以有多个发布者,这又是一个 ...

  2. 在odl中怎样实现rpc

    opendaylight作为sdn主要开源项目,採用osgi框架.已经得到非常多厂商的支持.氦版本号也公布在即. 以下介绍一下在odl中怎样实现rpc. odl使用yang作为model模型定义文件. ...

  3. Python程序的性能分析指南(转)

    原文地址 :http://blog.jobbole.com/47619/ 虽然不是所有的Python程序都需要严格的性能分析,不过知道如何利用Python生态圈里的工具来分析性能,也是不错的. 分析一 ...

  4. JZOJ.5235【NOIP2017模拟8.7】好的排列

    Description 对于一个1->n的排列 ,定义A中的一个位置i是好的,当且仅当Ai-1>Ai 或者Ai+1>Ai.对于一个排列A,假如有不少于k个位置是好的,那么称A是一个好 ...

  5. MySQL安装和Navicat安装、破解

    1)mysql下载 地址:https://dev.mysql.com/downloads/mysql/ 2)一路next安装,安装好后文件目录如下(不包括data文件夹,my.ini文件) 3)新建文 ...

  6. MySQL Connector/C++ C++连接mysql

    MySQL :: MySQL Connector/C++ Developer Guide :: 1 Introduction to Connector/C++ https://dev.mysql.co ...

  7. elasticsearch数据迁移——elasticsearch-dump使用

    先安装好nodejs和nodejs的包管理工具npm.然后安装elasticsearch-dump: npm install elasticdump 下面迁移数据: 先在目的地址创建一个index来储 ...

  8. Keras之序贯(Sequential)模型

    序贯模型(Sequential) 序贯模型是多个网络层的线性堆叠. 可以通过向Sequential模型传递一个layer的list来构造该模型: from Keras.models import Se ...

  9. Nodejs关闭windows服务进程

    1.根据端口号,查询进程信息命令: netstat -aon | findstr "端口号" 2.根据pid杀死进程命令: taskkill /F /pid 进程号 完整代码: c ...

  10. PAT 1035 Password [字符串][简单]

    1035 Password (20 分) To prepare for PAT, the judge sometimes has to generate random passwords for th ...