首页 > 编程语言 >实验7 面向对象编程与内置模块

实验7 面向对象编程与内置模块

时间:2023-06-11 23:33:27浏览次数:52  
标签:内置 面向对象编程 self amount 模块 ._ print balance def

实验任务1:

实验源码:

 1 class Account:
 2     """一个模拟银行账户的简单类"""
 3 
 4     def __init__(self, name, account_number, initial_amount = 10):
 5         """构造新账户"""
 6         self._name = name
 7         self._card_no = account_number
 8         self._balance = initial_amount
 9 
10     def deposit(self, amount):
11         """存款"""
12         self._balance += amount
13 
14     def withdraw(self, amount):
15         """取款"""
16 
17         if self._balance < amount:
18             print('余额不足')
19             return
20 
21         self._balance -= amount
22 
23     def info(self):
24         """打印账户信息"""
25         print('持卡人姓名:', self._name)
26         print('持卡人账号:', self._card_no)
27         print('持卡人账户余额:', self._balance)
28 
29     def get_balance(self):
30         """返回账户余额"""
31         return self._balance
32 
33 
34 def main():
35     """创建Account类对象,测试类"""
36     print('测试账户1:'.center(30, '*'))
37     a1 = Account('Bob', '5002311', 20000)
38     a1.deposit(5000)
39     a1.withdraw(4000)
40     a1.info()
41 
42     print()
43 
44     print('测试账户2:'.center(30, '*'))
45     a2 = Account('Joe', '5006692', 20000)
46     a2.withdraw(10000)
47     a2.withdraw(5000)
48     a2.info()
49 
50 
51 if __name__ == '__main__':
52     main()

运行截图:

 

1.类:定义一个抽象类型的表现形式,其中包含了适用于该类型的一系列操作和运算,但它实际上可以不含任何实际的数据

 对象:类中一个特定的个体,是类的实例

 属性:类中的变量,提供关于类或对象的额外信息的元素

 方法:类中定义的函数

 实例化:用类创建对象的过程

2.类的封装性:将数据和操作打包成一个不可分割的整体;对外只提供专门的接口供使用者访问部分数据和操作。

 

实验任务2:

实验源码:

1 from shape import Rect, Circle
2 shape_lst = [Rect(5, 5, 10, 5), Circle(), Circle(1, 1, 10)]
3 
4 for i in shape_lst:
5     i.info()
6     print(f'面积: {i.area(): .2f}')
7     print(f'周长: {i.perimeter(): .2f}')
8     print()

运行截图:

 

类的继承:对于不同的对象可以直接调用类中的方法,不需要重复编码;也可以在原有的类的基础上,扩展,修改或替换,节省了开发时间

多态:对于不同的实例对象。可以进行不同的计算行为即同名的方法有不同的功能,增强了代码的灵活性。

模块:模块是一个单独的python文件,是对代码更高级的封装,能够实现一类型的功能,方便导入使用,可以避免函数名和变量名冲突。

 

实验任务3:

实验源码:

 1 import math
 2 
 3 
 4 def func(x, m, s):
 5     a = (-1/2)*((x-m)/s)**2
 6     y = math.exp(a)/(pow(2*math.pi, 0.5)*s)
 7     print(f'x = {x},f = {y:.8f}')
 8 
 9 
10 x = [1, 3, 5, 7, 9]
11 for i in x:
12     func(i, 0, 2)

运行截图:

 

标签:内置,面向对象编程,self,amount,模块,._,print,balance,def
From: https://www.cnblogs.com/xrl1113/p/17473856.html

相关文章

  • 深度学习应用篇-计算机视觉-视频分类[8]:时间偏移模块(TSM)、TimeSformer无卷积视频分类
    深度学习应用篇-计算机视觉-视频分类[8]:时间偏移模块(TSM)、TimeSformer无卷积视频分类方法、注意力机制1.时间偏移模块(TSM)视频流的爆炸性增长为以高精度和低成本执行视频理解任务带来了挑战。传统的2DCNN计算成本低,但无法捕捉视频特有的时间信息;3DCNN可以得到良好的性能,但计算量......
  • 深度学习应用篇-计算机视觉-视频分类[8]:时间偏移模块(TSM)、TimeSformer无卷积视频分类
    深度学习应用篇-计算机视觉-视频分类[8]:时间偏移模块(TSM)、TimeSformer无卷积视频分类方法、注意力机制1.时间偏移模块(TSM)视频流的爆炸性增长为以高精度和低成本执行视频理解任务带来了挑战。传统的2DCNN计算成本低,但无法捕捉视频特有的时间信息;3DCNN可以得到良好的性能,但计算......
  • 前端——模块化演变过程
    第一阶段——基于文件划分的方式实现模块化文件为独立的模块,在对应位置调用全局成员。缺点:污染全局作用域,命名冲突问题,完全依靠约定。第二阶段——命名空间方式使用全局对象方式实现模块化,解决了命名冲突的问题。缺点:污染全局作用域第三阶段——立即执行函数方式使用立即执行......
  • 实验7 面向对象编程与内置模块
    实验1task1.py实验源码:classAccount:'''一个模拟银行账户的简单类'''def__init__(self,name,account_number,initial_amount=10):'''构造新账户'''self._name=nameself._card_no=......
  • Python 解析配置模块之ConfigParser详解
      yield的英文单词意思是生产,刚接触Python的时候感到非常困惑,一直没弄明白yield的用法。只是粗略的知道yield可以用来为一个函数返回值塞数据,比如下面的例子:defaddlist(alist):foriinalist:yieldi+1取出alist的每一项,然后把i+1塞进去。然后通过......
  • timeit模块的使用
    timeit模块pytho中自带的模块,它有一个日期类timeit.Timertimeit.Timer()的参数timeit.Timer(stmt,setup,globals)stmt:statement要测试执行的代码setup:要测试执行代码需要哪些包timer:定时器函数,有默认值,一般使用默认值globals:代码的作用域,传一些要用到的变量组成......
  • Python中的logging模块
    官方文档基本用法下面的代码展示了logging最基本的用法。#-*-coding:utf-8-*-importloggingimportsys#获取logger实例,如果参数为空则返回rootloggerlogger=logging.getLogger("AppName")#指定logger输出格式formatter=logging.Formatter('%(ascti......
  • 实验七 面向对象编程与内置模块
    实验一classAccount:#一个模拟银行账户的简单类def__init__(self,name,account_number,initial_amount=10):self._name=nameself._card_no=account_numberself._balance=initial_amountdefdeposit(self,amount):......
  • JavaScript模块化实现方式详解
    前言JavaScript是一门非常灵活的编程语言,但是在开发大型应用时,代码的组织和管理变得非常重要。为了解决这个问题,JavaScript社区提出了模块化的概念。模块化可以将代码分割成小的、独立的模块,每个模块只关注自己的功能,这样可以提高代码的可维护性和可重用性。在JavaScript中,有多种......
  • 聊聊结合业务需求给出合理的技术解决方案,改进现有模块功能,提高系统的可扩展性,封装性,稳
    针对提高系统的可扩展性、封装性、稳定性,改进现有模块功能,以下是我给出的一些技术解决方案:使用面向对象编程的设计模式:可以采用一些设计模式如单例模式、工厂模式、观察者模式等,来提高系统的可扩展性和封装性。应用微服务架构:可以将系统拆分成多个独立的服务,使得每个服务都可......