zoukankan      html  css  js  c++  java
  • python学习之可变不可变

    在python的数据类型中,整数、字符串、元组是不可变的;而列表、字典是可变的。所以不用C的思维来修改一个整数,它相当于重新定义了一个整数(原来的被覆盖掉了),名字和原来一样,但与前面的同名变量没有一点关系了。同理作为函数时这些类型作为参数,函数调用完毕是值时不可能改变的。

    一 函数中的参数:

    1.1 关键字参数:就是加上关键字后参数的顺序可以改变,如def func(a,b)  ,调用时func(b=x,a=y)

    1.2默认参数:必须放在最右边,不可变时用缺省值

    1.3可变参数:放在最右边,加“*”默认是可变的元组(多个变量);加“**”默认是可变的字典(多个键值对)

    二 匿名函数:就是用lambda表示而非标准的def,不同于c的inline

    三 作用域:以 L(局部,若调用全局的需要加关键字global) –> E(闭包函数外的函数中(若要调用嵌套外层的变量用关键字nonlocal) –> G(全局) –> B(内建作用域) 的规则查找

    __name__ 属性

      每个模块都有一个 __name__ 属性,当其值是 '__main__' 时,表明该模块自身在运行,否则是被引入。

      if __name__ == '__main__':
         print('程序自身在运行')
      else:
         print('我来自另一模块')

    五:包:

    采用”点模块名称”。比如一个模块的名称是 A.B, 那么他表示一个包 A中的子模块 B。目录只有包含一个叫做 __init__.py 的文件才会被认作是一个包。

    六:类和方法:

    6.1 对象方法:def开始,函数的第一个参数必须是self

          类方法:装饰器 @classmethod,且第一个参数必须是cls

          静态方法:装饰器 @staticmethod,第一个参数不在需要

          父类.__init__ 方法:重载父类的方法。

      super(子类,self).__init__(参数1,参数2,....)

    6.2访问控制:私有属性、方法,受保护的属性和方法;共享变量,私有变量__xxx__

    七:异常处理:

    7.1 try 表达式:

            except1:表达式1            

                 except2:表达式2

         except:没有列出的错误情况

        else:无错误时执行

           finally:无论有无异常都会执行

    7.2 raise:抛出异常但不处理:

    8文件操作:

    fileobj.open/close():关闭前写的内容都在缓冲区,关闭时才将缓冲区内容送到文件

    fileobj.flush():手动将缓冲区内容送到文件并刷新缓冲区

    fileobj.read()/readline()/readlines():读取指定字节,一行,多行

    fileobj.write([str])/writelines([str]):写入字符串和一系列字符串

    fileobj.seek(offset[, whence]):从开始(whence=0)向后、当前(whence=1)向后、结束(whence=2)向前偏移offset个字符

    fileObject.tell(offset[, whence]):tell() 方法返回文件的当前位置,即文件指针当前位置

    fileObject.isatty():isatty() 方法检测文件是否连接到一个终端设备

    fileObject.fileno():fileno() 方法返回一个整型的文件描述符(file descriptor FD 整型),可用于底层操作系统的 I/O 操作

    next(iterator[,default]):文件结束

    9序列化和反序列化:pickle模块,

      pickle.dump(obj, file, protocol=None, fix_imports=True):序列化后写入文件Wb模式

      pickle.load(file, fix_imports=True, encoding='ASCII', errors='strict'):从文件中读出并反序列化

        

  • 相关阅读:
    最全面的Java面试大纲及答案解析(建议收藏)
    开源一款超实用的 Dubbo 测试工具,已用半年,感觉很有feel~
    肝一波 ~ 手写一个简易版的Mybatis,带你深入领略它的魅力!
    2020年6月最新程序员工资统计,似乎又跌了,扎心!
    Redis企业级数据备份与恢复方案
    如何短时间内快速通过Java面试
    看完这篇还不懂Redis的RDB持久化,你们来打我!
    什么,容器太多操作不过来?我选择Docker Compose梭哈
    面试官:你说你精通 Docker,那你来详细说说 Dockerfile 吧
    30分钟快速上手Docker,看这篇就对了!
  • 原文地址:https://www.cnblogs.com/jieruishu/p/9573344.html
Copyright © 2011-2022 走看看