类与对象的强化练习
内容补充+题目练习
1. 类关键字:class 命名规范:首字母大写,驼峰式命名
2.类的概念:具有某一类共同属性和特征的事物
3.类包含:一般包含属性以及方法
4.类中的方法具有函数的一切属性(return、形参、不定长参数、可有默认值,关键字参数...)
4.类里面的方法是分为三种:
(1)实例方法:意味着这个方法只能是实例来调用
(2)类方法:@classmethod(装饰器,方法需要传参cls等同self)---调用则可以直接类名.方法(可以用不用创建实例,但实例可调用)
(3)静态方法:@staticmethod ---调用:实例和类名都可以调用
相同点:实例方法 self、类方法 cla、静态方法(普通方法) ---实例和类名都可以调用
不同点:静态方法和类方法不可以调用类里面的属性值,如果你要参数请自己传递
【?】什么时候去定义为类方法和静态方法?
当你的某个函数与其他类函数、类属性没有一丝丝关系,就可以定义为静态方法和类方法
例子:写一个软测工程师类,要求有属性有函数,并调用属性和函数
# 方法1: class ceshi: def __init__(self,name,exr,education,money): self.name = name self.exr = exr self.education = education self.money = money print('我叫{0},工作经验{1},学历{2},期望月薪{3}'.format(self.name,self.exr,self.education,self.money)) tester=ceshi('小明','1~3年','本科','1w') tester.name tester.exr tester.education tester.money # 输出:我叫小明,工作经验1~3年,学历本科,期望月薪1w
1 class ceshi: 2 EXP='1~3年' 3 education='本科' 4 Salary='1w' 5 def money(self): 6 print('功能测试招聘要求:月薪一万',end=',') 7 def work(self): 8 print('经验1到三年',end=',') 9 def exp(self): 10 print('学历本科') 11 Fun_testing=ceshi() 12 Fun_testing.money() 13 Fun_testing.work() 14 Fun_testing.exp() #12、13、14的---实例.方法:隐式传递 15 ceshi.money(Fun_testing) 16 ceshi.work(Fun_testing) #15、16的---类名.方法(实例):显式传递, 17 # 输出:功能测试招聘要求:月薪一万,经验1到三年,学历本科
#上代码分别输出: /usr/local/bin/python3.7 /Users/tuyoo/Documents/pytext/test02/homework/homework_1016.py 功能测试招聘要求:月薪一万,经验1到三年,学历本科 功能测试招聘要求:月薪一万,经验1到三年,
5.初始化函数 __init__(self)
1:需要对应传参 ---必填
2: 场合:某个属性值是多个函数共用的,可以用初始化函数,初始换函数具有函数所有特点
3: 实例方法一般不传动态参数和关键字参数
4: 没有return返回值