美文网首页
我们一起学python(函数)

我们一起学python(函数)

作者: 梦想实现家_Z | 来源:发表于2019-04-15 23:37 被阅读0次

如果了解了python代码的简单流程控,那么我们就要开始做一些简单的封装了.

函数

我们先来封装一个打印字典对象的打印函数:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

def print_dict(dict_obj):
    """
    遍历字典对象
    :param dict_obj:字典对象
    :return:
    """
    # 判断传进来的参数是否是字典类型
    if type(dict_obj) == type({}):
        # 循环遍历字典对象
        for key in dict_obj.keys():
            # 打印key:value
            print("%s:%s" % (key, dict_obj[key]))

上面这个函数就可以用来打印简单的字典对象了。那么我们来使用一下这个函数:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
if __name__ == '__main__':
    person = {"name": "名字", "age": "年龄", "sex": "性别"}
    # 打印person对象
    print_dict(person)

    student = {"name": "Zz", "age": "26", "sex": "男"}
    # 打印student
    print_dict(student)

根据上面示例,我们再也不用到处写遍历字典的代码了,我们只需要把遍历的固有的逻辑封装在一个函数中,就可以到处使用我们的打印功能。

默认参数

#!/usr/bin/env python
# -*- coding: utf-8 -*-
def pop_list(list_obj, index=-1):
    """
    从列表中推出一个元素
    :param list_obj:
    :param index: 默认是-1
    :return: 返回被推出的元素
    """
    # 判断是否是列表
    if type(list_obj) == type([]):
        return list_obj.pop(index)

if __name__ == '__main__':
    # 定义一个列表
    example = ["hello", "world", "java", "python"]
    # 推出一个默认index的元素
    print(pop_list(example))
    # 输出结果:python

    # 推出index为0位置的元素
    print(pop_list(example, 0))
    # 输出结果:hello

因为默认参数值可传可不传,所以这个参数的位置应该放在最后。

有时候我们写的函数不想被外部使用,为了控制函数的可见性,我们可以把不想被外部调用的函数做一个嵌套:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

def get_list(list_obj, index):
    """
    通过索引获取列表的值
    :param list_obj: 列表对象
    :param index: 索引值
    :return: 索引值对应的value
    """

    def is_list(obj):
        """
        判断是否是列表
        :param obj: 需要判断的对象
        :return:
        """
        return type(obj) == type([])

    def check_valid(list_obj, index):
        """
        检测index是否合法
        :param list_obj: 列表对象
        :param index: 需要检测的索引值
        :return: 是否合法
        """
        return -1 < index < len(list_obj)

    # 调用上面的函数判断
    if is_list(list_obj) and check_valid(list_obj, index):
        # 返回对应索引位置的值
        return list_obj[index]

if __name__ == '__main__':
    example = ["hello", "world", "java", "python"]
    # 获取索引值为1的数据
    print(get_list(example, 1))
    #输出结果:hello

在主函数中,是无法调用is_list和check_valid函数的,因为它们只对get_list函数可见,所以只能由get_list函数调用。我们可以利用这个特性控制函数的调用范围。
以上就是我对函数的一些简单使用,感兴趣的小伙伴可以自己敲一遍。

相关文章

网友评论

      本文标题:我们一起学python(函数)

      本文链接:https://www.haomeiwen.com/subject/ljpswqtx.html