python关闭对象语法_Python基础语法学习笔记之风变第十二关类与对象

一、类与对象

我们已经认识了两个重要的新概念:类和实例,也知道它们之间的关系类似于:群体和个体。群体里的每个个体都有着相同/相似的特征和行为。

万事万物,皆为对象

二、类的创建和调用

类中创建的属性和方法可以被其所有的实例调用,而且,实例的数目在理论上是无限的。

三、创建类的两个关键点

1、特殊参数:self

self代表的是类的实例本身,方便数据的流转。

第一点:只要在类中用def创建方法时,就必须把第一个参数位置留给 self,并在调用方法时忽略它(不用给self传参)。

第二点:当在类的方法内部想调用类属性或其他方法时,就要采用self.属性名或self.方法名的格式。

2、特殊方法:初始化方法

定义初始化方法的格式是def __init__(self),是由init加左右两边的【双】下划线组成( initialize “初始化”的缩写)

除了设置固定常量,初始化方法同样可以接收其他参数,让传入的这些数据能作为属性在类的方法之间流转。

四、面向对象编程

import math

class Project:

def __init__(self):

self.key = 1

def input(self):

choice = input('请选择计算类型:(1-工时计算,2-人力计算)')

if choice == '1':

self.size = float(input('请输入项目大小:(1代表标准大小,请输入小数)'))

self.number = int(input('请输入人力数量:(请输入整数)'))

self.time = None

if choice == '2':

self.size = float(input('请输入项目大小:(1代表标准大小,请输入小数)'))

self.number = None

self.time = float(input('请输入工时数量:(请输入小数)'))

def estimated(self):

# 人力计算

if (self.number == None) and (self.time != None):

self.number = math.ceil(self.size * 80 / self.time)

print('项目大小为%.1f个标准项目,如果需要在%.1f个工时完成,则需要人力数量为:%d人' %(self.size,self.time,self.number))

# 工时计算

elif (self.number != None) and (self.time == None):

self.time = self.size * 80 / self.number

print('项目大小为%.1f个标准项目,使用%d个人力完成,则需要工时数量为:%.1f个' %(self.size,self.number,self.time))

def again(self):

a = input('是否继续计算?继续请输入y,输入其他键将结束程序。')

if a != 'y':

# 如果用户不输入'y',则把key赋值为0

self.key = 0

# 主函数

def main(self):

print('欢迎使用工作量计算小程序!')

while self.key == 1:

self.input()

self.estimated()

self.again()

print('感谢使用工作量计算小程序!')

# 创建实例

project1 = Project()

project1.main()

用类编写一个直观的好处就是参数的传递会比普通函数要省事很多,也不必考虑全局变量和局部变量,因为类中的方法可以直接调用属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值