• 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'):从文件中读出并反序列化

        

  • 相关阅读:
    Maven pom.xml文件获取当前时间戳
    maven依赖jdk的tools.jar包坐标怎么依赖
    解决Git问题:git登录账号密码错误remote: Incorrect username or password、如何快速关联/修改Git远程仓库地址、git修改用户名邮箱密码
    浅析Java里的内存分析及常量池加强对Java里字符串的理解
    浅析Java数据结构:稀疏数组的介绍和使用场景
    UmiJS简单介绍及使用UmiJS开发结构浅析
    React基础知识笔记:如何渲染html代码、条件渲染与循环渲染、如何获取动态路由传参、动态设置背景图、umi+dva中全局使用dispatch
    git commit提交时报错husky > pre-commit (node v10.16.3)
    浅析npm报错ENOTFOUND npm ERR! network request to https://npm.***.com/*** failed 及 .npmrc 文件的作用、npm --verbose命令
    浅析为什么说Java中只有值传递
  • 原文地址:https://www.cnblogs.com/jieruishu/p/9573344.html
Copyright © 2020-2023  润新知