python学习总结(1)
来源:互联网 发布:dha哪个牌子好 知乎 编辑:程序博客网 时间:2024/06/07 16:23
最近学习了python,看了这篇文章http://python.jobbole.com/85231/后,自己来总结下,免得忘了:
1.可更改对象:list,dict,数组;不可更改对象:strings,numbers,tuples。
2.元类(metaclass):几乎不使用,推荐(http://python.jobbole.com/21351/),django中ORM中用到,主要用途是创建API。
3.方法:即静态方法(staticmethod),类方法(classmethod)和实例方法:
4.python自省:自省就是面向对象的语言所写的程序在运行时,所能知道对象的类型.简单一句就是运行时能够获得对象的类型.比如type(),dir(),getattr(),hasattr(),isinstance().
5.下画线:
__foo__
:一种约定,Python内部的名字,用来区别其他用户自定义的命名,以防冲突.
_foo
:一种约定,用来指定变量私有.程序员用来指定私有变量的一种方式.
__foo
:这个有真正的意义:解析器用_classname__foo
来代替这个名字,以区别和其他类相同的命名.
6..format()函数(字符串格式化,比%s 好多了):
print('{}'.format('hello world'))
hello world
7.迭代器:当你创建了一个列表,你可以一个一个的读取它的每一项,这叫做iteration;
生成器:生成器也是迭代器的一种,但是你只能迭代它们一次.原因很简单,因为它们不是全部存在内存里,它们只在要调用的时候在内存里生成。
生成器和迭代器的区别就是用()
代替[]
8.*args和**kwargs:
用*args
和**kwargs
只是为了方便并没有强制使用它们.
当你不确定你的函数里将要传递多少参数时你可以用*args
.例如,它可以传递任意数量的参数:
相似的,**kwargs
允许你使用没有事先定义的参数名:
你也可以混着用.命名参数首先获得参数值然后所有的其他参数都传递给*args
和**kwargs
.命名参数在列表的最前端.例如:
*args
和**kwargs
可以同时在函数的定义中,但是*args
必须在**kwargs
前面.
当调用函数时你也可以用*
和**
语法.例如:
就像你看到的一样,它可以传递列表(或者元组)的每一项并把它们解包.注意必须与它们在函数里的参数相吻合.当然,你也可以在函数定义或者函数调用时用*.
9.面向切面编程AOP和装饰器:
#新式类
class C(object):
pass
#经典类
class B:
pass
__new__
是一个静态方法,而__init__
是一个实例方法.__new__
方法会返回一个创建的实例,而__init__
什么都不返回.- 只有在
__new__
返回一个cls的实例时后面的__init__
才能被调用. - 当创建一个新实例时调用
__new__
,初始化一个实例时用__init__
.
1 使用__new__
方法
2 共享属性
创建实例时把所有实例的__dict__
指向同一个字典,这样它们具有相同的属性和方法.
3 装饰器版本
4 import方法
作为python的模块是天然的单例模式
- Python学习总结(1)
- python学习总结(1)
- python学习总结(1)
- Python 3.4 学习总结(1)
- python学习手册总结1
- 【Python】numpy学习总结1
- python 学习总结(二)
- python学习总结(一)
- 学习python总结(一)
- python学习总结(2)
- Python学习总结(3)
- python学习(总结一)
- python学习总结(一)
- Python:Python学习总结
- 学习Python:Python学习总结
- Python学习总结笔记(1)--Dom XML操作
- 2017/5/20 python 学习总结(1)
- python简明教程学习总结1
- myeclipse安装lombok插件
- LeetCode 31. Next Permutation
- greenDao小坑一个
- OracleDBControl启动失败Unable to determine local host from URL REPOSITORY_URL=http://
- LeetCode 575. Distribute Candies
- python学习总结(1)
- 《程序员的呐喊》读书笔记(上)
- 查看tomcat管理信息
- LeetCode 104. Maximum Depth of Binary Tree和111. Minimum Depth of Binary Tree 递归
- 逆波兰表达式求值
- PHP实现数组和XML文件转换
- C语言地址概念
- 微信小程序 倒计时
- php中的类