Python零基础初学--------Day 11

一、PyCharm 中 import 包

    1、Python中可以引入自定义模块,比如我需要user中的一个a字段的值,那么我么直接就可以import 这个包,如果是在不同的文件中,那么我们就需要加上他的包名,而且在Python 中是可以自定义导入的包名的,需要添加一个 as 然后加上自定义名称

        

        然后运行结果

        

    2、from x import x模式

        

        这两种方法都是导入自定义模块,结果是

        

        那我们不希望访问user模块的 b 这个信息怎么办呢,我们可以添加__all__ = [x,x,x]来选取可以访问对象,那么剩下的自然就不可访问了,但是这种情况只适用于当你导入的对象时所有的时候,如果是单独导入是没有效果的

        

        

    3、__name__的用法

        a、可以用来获取项目所在包名,我们在__init.py以及user.py中都写上print(__name__)

            

            我们会发现,当我们运行代码的时候第一个打印的是init.py的包名,也就是说我们导入包名的时候,会默认选择我们导入的是init这个模块,第二个打印的是模块名,因为除了init这个模块会被默认,其他的包是无法导入的,只能导入模块

        b、我们还可以用来防止外部引用模块时造成的二次运行,我们写一个简单的加法运算,然后执行,打印出来结果是 10

            

            当我们外部引用的时候,会发现,我们的结果出现了两个,一个是user中对象本身运行,一个是外部调用

            

            那么我们如何避免呢,这就用到了__name__,当函数再次运行的时候会发现,只出现的我们外部调用的结果

            

二、迭代器

    自定义迭代器,定义一个自增三次方的迭代器

        

三、生成器:只要有了yield,那么这个函数就是生成器函数,他会在运行到yield的时候停止并且存储数据,然后在下一次运行next() 的时候从上一次停止的地方开始继续运行,从下面的函数就可以看出来

    

四、闭包

    1、特点

        

    2、简单的闭包函数,__closure[x].cell.contents这是判断该函数是否为闭包函数的方法,如果报错证明不是闭包函数,如果返回了数据那么就证明是闭包函数

        

    3、如何在内部函数中修改闭包函数的外部变量,我们需要一个nonlocal,会发现,我们的值是递加过来的,也就是修改成功

        

五、装饰器:装饰器是一种增强函数方法,其实并没有什么区别
    1、定义装饰器:装饰器的函数名,以及内部方法名是可以自定义的

        

    2、调用装饰器:可以用 @你自己定义的名称 来调用装饰器

        

    3、我们可以看一下装饰器拦截的数据,可以看得出来,我们已经拦截到了数据,如果有需要是可以直接提取出来并且操作的

        

六、lambda匿名函数,我们可以用来做一些简单函数,我们可以看出lambda与普通函数的区别是减少了关键字,以及不需要进行命名了

    

    不仅简单函数,稍微复杂的也是可以的,比如进行判断的,我们可以伙同三元表达式来

    

七、map:map(函数,可迭代序列(可以添加多个序列)),这就是一个简单的立方操作,将序列中每一个数据立方之后返回

    

    我们可以试着将序列中的数据长度变化一下,我们可以发现返回的数据是根据最短的序列长度来判断的

    

八、reduce(函数,序列,初始值) 用于连续计算

    我们平时如果用到了连续的计算一般是直接for循环进行计算,比如下面的计算1-5的乘法结果

    

    但是我们有一个reduce函数可以做到,在这之前必须引入reduce函数,在reduce中还有一个参数,代表的是初始值,第一个值先于其做计算,之后才会进行计算

    

九、filter(函数,序列)函数:是一个过滤函数

    如果有一个序列,其中有许多 0 以及非 0 常量,我们需要将非 0 常量提取出来放到一起的话,是下面这么做的

    

    我们还可以用filter函数来做

    

    或者用lambda,为什么这返回值是True以及False呢,因为filter的返回结果必须是True以及False,否则就会报错,别问我怎么知道,又因为之前有说过,boolean类型中,除了0,其他的常量都代表了True,所以我们还可以简写成第二种

    

十、列表推导式

    

    这就属于列表推导式,那么还有字典推导式,我们可以用字典推导式将键值调换

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值