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

   

python学习之可变不可变的更多相关文章

  1. python学习(28) 浅谈可变对象的单例模式设计

    python开发,有时候需要设计单例模式保证操作的唯一性和安全性.理论上python语言底层实现和C/C++不同,python采取的是引用模式,当一个对象是可变对象,对其修改不会更改引用的指向,当一个 ...

  2. python学习笔记-函数与可变长参数

    一.函数 1. def test(x): y=x+1 return yprint(test) #这是打印函数在内存中的地址 过程:就是没有返回值的函数 在python中过程也是函数,就算没哟返回值,也 ...

  3. Python中为什么不能用可变对象作为默认参数的值

    def func(numbers = [], num=1): numbers.append(num) for number in numbers: print(number) func() >& ...

  4. python函数参数是值传递还是引用传递(以及变量间复制后是否保持一致):取决于对象内容可变不可变

    函数参数传递本质上和变量整体复制一样,只是两个变量分别为形参a和实参b.那么,a=b后,a变了,b值是否跟着变呢?这取决于对象内容可变不可变 首先解释一下,什么是python对象的内容可变不可变? p ...

  5. SQL反模式学习笔记6 支持可变属性【实体-属性-值】

    目标:支持可变属性 反模式:使用泛型属性表.这种设计成为实体-属性-值(EAV),也可叫做开放架构.名-值对. 优点:通过增加一张额外的表,可以有以下好处 (1)表中的列很少: (2)新增属性时,不需 ...

  6. Python(可变/不可变类型,list,tuple,dict,set)

    补充:(可用操作技巧) >>> x=900 >>> y=900 >>> x==y True >>> type(x) is typ ...

  7. Python元组tuple(不可变)

    Python元组Tuple(不可变): 元组的特点: 1.元组的初始化: tuple = (1, )  #元组只有一个元素的话,初始化时要加,否则当做元素的普通变量类型处理 tuple = (1, 2 ...

  8. 005 python 整数类型/字符串类型/列表类型/可变/不可变

    可变/不可变类型 可变类型 ID不变的情况下,值改变,则称之为可变类型,如列表,字典 不可变类型 值改变,ID改变,则称之为不可变类型,如 整数 字符串,元组 整数类型 int 正整数 用途就是记录年 ...

  9. python面试题(-)可变数据类型与不可变数据类型

    python3中有六个标准的数据类型:number(数字型).string(字符串型).list(列表).type(元祖).dictionary(字典).set(集合),其中不可变类型三个:numbe ...

  10. Python学习--01入门

    Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...

随机推荐

  1. 友盟让用户数据动起来——给app增加运营

    让用户数据动起来——给app增加运营 一.初识友盟 友盟大家都听说过,在给app集成友盟之前对友盟的认识没有那么深刻.用了友盟之后,才发现友盟很强大. 集成友盟能够获取那些数据呢? 用户的基本信息:比 ...

  2. HTML完全使用详解 PDF扫描版​

    <HTML完全使用详解>根据网页制作的实际特点和目前市场需要,全面系统地介绍了最新的HTML4.01.丰富的实例贯穿全书,能帮助您全面掌握HTML,而且本书所有实例均可直接修改使用,可以提 ...

  3. java8之lambda表达式&方法引用(一)

    本文将简单的介绍一下Lambda表达式和方法引用,这也是Java8的重要更新,Lambda表达式和方法引用最主要的功能是为流(专门负责迭代数据的集合)服务. 什么是lambda表达式 可以把lambd ...

  4. C#中的线程池使用(二)

    线程池是后台线程.每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中.每个进程只有一个线程池对象. 下面说一下线程池中的异常,在线程池中未处理的异常将终止进程.以下为此规则的三种例外 ...

  5. java java启动方式

     java启动方式 两种方案: 1.守护进程方式启动: java –jar命令: 例如:C:\eclise\work\test.jar C:\eclise\work\test.java 打开dos:输 ...

  6. metasploit 读书笔记-EXPLOITATION

    一、渗透攻击基础 1.常用命令 show exploits 显示Meta框架中所有可用的渗透攻击模块。 show options 显示模块所需要的各种参数 back 返回Meta的上一个状态 sear ...

  7. C++期中考试

    第一题1. 补足日期类实现,使得能够根据日期获取这是一年中第多少天.(12分) date.h #ifndef DATE_H #define DATE_H class Date { public: Da ...

  8. pg10.1 orafce3.6 安装

    安装unzip orafce-mastermv orafce-master /opt/soft_bak/postgresql-10.1/contribcd /opt/soft_bak/postgres ...

  9. 数据结构4:顺序表(线性表的顺序存储结构)及C语言实现

    逻辑结构上呈线性分布的数据元素在实际的物理存储结构中也同样相互之间紧挨着,这种存储结构称为线性表的顺序存储结构. 也就是说,逻辑上具有线性关系的数据按照前后的次序全部存储在一整块连续的内存空间中,之间 ...

  10. charset=iso-8859-1

    今天群里有人在问, 求解:charset="ISO-8859-1"是什么意思 其实我也不大懂,然后就去翻阅了下资料.科普开始: 网页制作中遇到的编码,乱码问题之一:charset= ...