类与对象的强化练习

内容补充+题目练习

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返回值

 

posted on 2018-10-25 17:06  暖暖_8023  阅读(89)  评论(0编辑  收藏  举报

导航