def封装

    1****from 公共方法 import bmicheck
    2,import 公共方法
    公共方法.bmi_check

    全选,tab键缩进
    # 作业1:Jeremy身高1.76米,体重76.6公斤,请先根据BMI公式(体重除以身高的平方)帮Jeremy计算他的BMI指数,并根据BMI指数:# - 低于18.5:过轻# - 18.5-25:正常# - 25.1-28:过重# - 28.1-32:肥胖# - 高于32:严重肥胖# 使用if-elif-else判断并打印最终体检结果
    def bmi_check():
    height = float(input('Please write down your height(meter, example: 1.76):'))
    #input里面输出的是字符串,所以要加float转为小数类型
    weight = float(input('请按格式输入你的体重(单位:公斤,例:76.6):'))
    bmi = weight/(height**2)
    bmi = round(bmi, 2)
    # Pythonround()函数的作用是自定义需要保留小数点的后几位,然后返回给变量_
    print('你的的BMI指数是:{}。'.format(bmi))
    if bmi < 18.5:
    print('你过轻。')
    elif 18.5 <= bmi <= 25:
    print('你正常。')
    elif 25.1 <= bmi <= 28:
    print('你过重。')
    elif 28 < bmi <= 32:
    print('你肥胖。')
    elif bmi > 32:
    print('你严重肥胖。')
    else:
    pass

    实现一个功能,这个方法叫做“学猫叫,学狗叫”,如果用户想听狗叫,狗就会叫给你听,依次类推,猫也是
    #def animal_voice(): 封装
    #
    #想听的声音=input(‘你想听什么声音,请写下关键字(猫/狗):’)
    #if想听的声音==’猫’:
    #print(‘喵,喵,喵’)
    #elif想听的声音==’狗’:
    #print(‘汪,汪,汪’)
    #else:
    #print(‘不好意思,请按指定格式输入,你当前输入的【%s】有误’%想听的声音)
    #__animal_voice()
    入参

    #自己写一个my_print方法(),功能和print()一样

    #defmy_print(print_content):
    #print(print_content)
    def myprint(name):
    print(str(name)+“是世界上最帅的人”)

    def **星语心愿(愿望):
    print(愿望)
    image.png


    #from公共方法importbmicheck

    #import公共方法
    #公共方法.animal_voice
    例如:import公共方法
    公共方法.星语心愿
    愿望=‘**暴富,娶霞霞**’
    公共方法.星语心愿(愿望)


    from公共方法import星语心愿
    愿望=‘**顺利毕业,拿高薪**’
    星语心愿(愿望)

    接口报文响应结果 = {
    “success”: True,
    “topic_id”: “5ec7976ddda04006aa6ed326”
    }

    测试结果1 = False
    测试结果2 = False
    success的预期结果 = True
    success的实际结果 = 接口报文响应结果[‘success’]
    if success的实际结果 == success的预期结果:
    print(‘测试结果1通过’)
    测试结果1 = True

    topic_id的实际结果 = 接口报文响应结果[‘topic_id’]
    if len(topic_id的实际结果) > 0:
    print(‘测试结果2通过’)
    测试结果2 = True

    if 测试结果1 == True and 测试结果2 == True: # 等价于: if 测试结果1 and 测试结果2
    print(‘本条测试用例测试通过!’)

    今天我们来学习下如何自定义方法,以及编写python类文件,在公司中我们不可能一个python文件几千几万行代码,不利于代码的维护及排查问题的及时性,而面向对象则是解决了这一问题!

    def(方法的定义)
    在python中,我们使用def这个关键字进行自定义方法,可以供其他方法,其他类的调用,而不需要再写一次这个方法的内容了。
    python封装及入参 - 图2
    以上我们可以看到一个简单的方法定义,方法后面必须要加’()’。上面这个方法的主要内容就是打印一个字符串,如果我们需要一个方法里面的某个值传给调用他的代码,那么我们可以使用return进行返回:
    python封装及入参 - 图3
    运行以上代码,我们可以看到控制台并未任何输出,因为我们需要对这个方法赋值给某个变量,可以通过打印print看到,方法返回的内容。
    接下来我们可以看一个实例:
    python封装及入参 - 图4
    上述中的e就是test()方法返回的值,所以e的值就为a+b=3。

    刚才所说,方法后面都是需要加括号,那么这个括号里面是否可以传值呢,答案肯定是可以的!
    python封装及入参 - 图5
    我们可以看到方法括号里传了值(形参:形式上的参数),那么我们在调用这个方法的时候,括号里面就需要传参数,否则将会报错,缺少参数。
    方法括号内还可以传不定长参数,就是不明确具体传的参数个数,根据实际调用情况进行传参:
    python封装及入参 - 图6

    我们可以看到不定长参传参的方式args,是以tuple元组的形式进行传参,还可以使用*args,我们也可以查看到,参数是以dict字典的形式进行的传参!

    Class(面向对象)
    class就是代表着一个类,什么是类,你可以把它理解为一个家庭,家庭里面包含了方法,不同类型的方法则是不同的家庭成员,但是对外又是一个家庭的,只有一个户口本,类和家庭一样可以继承,爷爷生爸爸,爸爸生了你,分别最后又组成了新的家庭。
    python封装及入参 - 图7

    上面我们可以看到,定义了一个类,这个类,里面包含了eat(),drink(),sleep()等方法,对类进行一个实例,然后通过实例去调用这个类里面的方法。
    类有一个名为 init() 的特殊方法(构造方法),该方法在类实例化时会自动调用,像下面这样:
    python封装及入参 - 图8
    我们可以看到init方法中的name,在前面加了self之后,可以直接被其他方法所调用,那么这个self是什么呢,实际就是类里面的内部的实例,不需要氮素对类进行实例,直接加self之后,就可以传给其他的方法。

    类的继承
    所谓类的继承就类似于家族中的基因遗传,父类的一些方法及元素,可以供子类使用
    python封装及入参 - 图9
    我们可以看到下面的子类继承了上面的父类,不但可以调用自身的方法,同样可以调用父类中的方法。子类还可以继承父类的子类:
    python封装及入参 - 图10
    我们可以看到tiger继承了animal,然后ele则又继承了tiger,那么类ele则可以使用上面两个类中的所有方法。
    类中的方法也存在集中不同的形态,静态类方法,类方法,属性等形式!
    python封装及入参 - 图11
    我们可以看到不同类型的方法调用的方式也存在区别,同学们可以根据自身的需求去编写不同的类形式!