前言
记录 初次接触类和对象的含义,用现实生活中的例子讲解。
一、什么是类?
1、函数和类的区别:
函数:封装 把一个功能封装起来了。使用者只需要知道功能名字,和参数。
现实生活中的例子:
高铁票 - 取票、买票、打印报销凭证、改签
ATM机(一体化) - 取钱、存钱、转帐、查余额、打流水 -- 前提:卡一插,密码一输
商场(一站式) - 买衣服、买首饰、吃饭、看电影、打电子游戏、滑冰、唱歌、书店
这种单一的功能(取票,取钱,存钱)相当于就是函数。
更高级的封装:
不再是针对单一功能,针对功能集合(包含很多功能)。
(也就是类,ATM机就一个类,这个机器包含了很多功能)。
2、类和对象:
类: 同一类事物的共同特征(属性+功能/行为/能力)描述。抽象的。
对象: 是类的某一个具像化。是具体的。
先有类,再有对象。对象是类衍生出来的,是类的具像化。
先定义类
举例生活中的例子:
工作 - 106份工作。具体1:城市薪资工作时间岗位名称
人类 - 吃喝拉撒睡(功能) (属性特征)外貌特征 身高 体重 年龄 名字 是否单身 是否结婚 是否有娃
编程里面:
1、别人写好的类 - 提供了一系列的功能(功能和属性的结合体)。 你作为使用者,你要去创造对象,去使用功能。
2、自己去写类,然后再去创造对象,再去使用。
3、驼峰命名法:
大驼峰:比如2个单词,首字母大写
每一个单词的首字母都采用大写字母,例如:FirstName、LastName、CamelCase,也被称为 Pascal 命名法。
小驼峰:2个单词,第一个单词全小写,第二个单词首字母大写
第一个单词以小写字母开始,第二个单词的首字母大写。例如:firstName、lastName。
4、定义类的语法:
class 类名(大驼峰命名):
属性 - 变量
功能 - 函数(function)实现的。 在类当中,叫方法(method)。
__init__() -- 初始化方法(方法名固定)
插入一段代码可以试着用:
class MyAtm:
# 面临的问题:每一个方法里面,都有对card,passwd的统一判断处理。
# 代码重复了。那可不可以只写一个方法,就对card,passwd的统一判断处理
# 如果不处理,函数放在类内部,和放在类外面,没有什么区别。
# 取钱
def get_money(self,card,passwd,left_money,to_be_geted_money):
"""
取钱:卡号正确(10位),密码要正确(6位),有钱(>100)。atm也得有钱。
:return:
"""
if len(card) != 10 or len(passwd) != 6 or left_money < 100:
print("您的卡号不是10位,或者密码不是6位,或者余额少于100")
return
print("可以取钱了...")
if to_be_geted_money > left_money:
print(f"您的余额不足,取不出{to_be_geted_money}")
return
print("取钱成功....")
print(f"您的余额还剩:{left_money - to_be_geted_money}")
# 存钱
def save_money(self,card,passwd,saved_money):
if len(card) != 10 or len(passwd) != 6:
print("您的卡号不是10位,或者密码不是6位")
return
if saved_money % 100 != 0:
print("请存100的整数倍金额!")
return
# 存钱上限是多少
# 转帐
def give_money_out(self,card,passwd,left_money,other_card,out_money):
if len(card) != 10 or len(passwd) != 6 or left_money < 100:
print("您的卡号不是10位,或者密码不是6位,或者余额少于100")
return
# 查询
def see_money(self,card,passwd):
if len(card) != 10 or len(passwd) != 6:
print("您的卡号不是10位,或者密码不是6位")
return
# 打印帐单
def print_payment(self,card,passwd):
if len(card) != 10 or len(passwd) != 6:
print("您的卡号不是10位,或者密码不是6位")
return
总结
暂无