1.import导入模块

  import sys

  sys.path:显示的是:从显示目录中查找要导入的模块文件。

  程序执行时导入模块路径:sys.path.append('/home/itcast/xxx');sys.path.insert(0, '/home/itcast/xxx')

  重新导入模块:reload(mudule)

2.==、is之间区别

  is :比较两个引用是否指向同一个对象

  ==:比较两个对象是否相等

3.深拷贝浅拷贝

  浅拷贝:拷贝了引用没有拷贝内容,a=[1,3,4];b=a

  深拷贝:对一个对象所有层次的拷贝(递归),b=copy.deepcopy(a)

4.进制,位运算

  4.1 进制转换

  如:0010(二进制)=2(0*2^0+1*2^1十进制)

    34(16进制)=52(4*16^0+3*16^1十进制) 

#10进制转为2进制
>>> bin()
'0b1010' #2进制转为10进制
>>> int("",) #10进制转为16进制
>>> hex()
'0xa' #16进制到10进制
>>> int('ff', ) >>> int('0xab', ) #16进制到2进制
>>> bin(0xa)
'0b1010'
>>> #10进制到8进制
>>> oct()
'' #2进制到16进制
>>> hex(0b1001)
'0x9'

  4.2 位运算

    数字在计算机中是二进制的补码形式保存,因此-1+1需按照补码进行相加

    -1+1在计算机中计算方式:1111 1111 1111 1111 + 0000 0000 0000 0001 = 0000 0000 0000 0000

    & 按位与;| 按位或;^ 按位异或;~ 按位取反;<< 按位左移;>> 按位右移

    注意:a. 左移1位相当于 乘以2;用途:快速计算一个数乘以2的n次方 (8<<3 等同于8*2^3)

5 私有化

    xx: 公有变量

    _x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问

    __xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到)
    __xx__:双前后下划线,用户名字空间的魔法对象或属性。例如:__init__ , __ 不要自己发明这样的名字
    xx_:单后置下划线,用于避免与Python关键词的冲突

    这里私有化越来越强!

    父类中属性名为__名字的,子类不继承,子类不能访问

    如果在子类中向__名字赋值,那么会在子类中定义的一个与父类相同名字的属性
    _名的变量、函数、类在使用from xxx import *时都不会被导入

6 属性property

  可代替 类的get,set方法,如

  这里操作后:私有属性一般不能通过实例直接赋值,但这样操作后,就可以了,本质是变为一个方法将私有属性值传入

class Money(object):
def __init__(self):
self.__money = @property
def money(self):
return self.__money @money.setter
def money(self, value):
if isinstance(value, int):
self.__money = value
else:
print("error:不是整型数字") ------------------------------
In []: a = Money() In []: In []: In []: a.money
Out[]: In []: a.money = In []: a.money
Out[]:

7.垃圾回收机制

  7.1

  小整数[-5,257)共用对象,常驻内存
  单个字符共用对象,常驻内存
  单个单词,不可修改,默认开启intern机制,共用对象,引用计数为0,则销毁

  7.2 GC垃圾回收机制

    7.2.1机制:以引用计数为主,分代收集为辅

    7.2.2 导致引用计数+1情况    

对象被创建,例如a=
对象被引用,例如b=a
对象被作为参数,传入到一个函数中,例如func(a)
对象作为一个元素,存储在容器中,例如list1=[a,a]

    7.2.3 导致引用计数-1情况 

对象的别名被显式销毁,例如del a
对象的别名被赋予新的对象,例如a=
一个对象离开它的作用域,例如f函数执行完毕时,func函数中的局部变量(全局变量不会)
对象所在的容器被销毁,或从容器中删除对象

    7.2.4 查看一个对象的引用计数

import sys
a = "hello world"
sys.getrefcount(a)

    7.2.5 内存泄漏

      只通过引用计数机制管理内存,当出现循环引用时就可能会出现内存泄漏

    7.2.6 常用函数

、gc.set_debug(flags) 设置gc的debug日志,一般设置为gc.DEBUG_LEAK

、gc.collect([generation]) 显式进行垃圾回收,可以输入参数,0代表只检查第一代的对象,1代表检查一,二代的对象,2代表检查一,二,三代的对象,如果不传参数,执行一个full collection,也就是等于传2。 返回不可达(unreachable objects)对象的数目

、gc.get_threshold() 获取的gc模块中自动执行垃圾回收的频率。

、gc.set_threshold(threshold0[, threshold1[, threshold2]) 设置自动执行垃圾回收的频率。

、gc.get_count() 获取当前自动执行垃圾回收的计数器,返回一个长度为3的列表

 8 内建属性

   一个类的自带属性很多很有用

常用专有属性 说明 触发方式
__init__ 构造初始化函数 创建实例后,赋值时使用,在__new__
__new__ 生成实例所需属性 创建实例时
__class__ 实例所在的类 实例.__class__
__str__ 实例字符串表示,可读性 print(类实例),如没实现,使用repr结果
__repr__ 实例字符串表示,准确性 类实例 回车 或者 print(repr(类实例))
__del__ 析构 del删除实例
__dict__ 实例自定义属性 vars(实例.__dict__)
__doc__ 类文档,子类不继承 help(类或实例)
__getattribute__ 属性访问拦截器 访问实例属性时
__bases__ 类的所有父类构成元素

类名.__bases__

9.functools:提供了很多内置功能

python进阶02的更多相关文章

  1. python进阶02 特殊方法与特殊属性

    python进阶02 特殊方法与特殊属性 一.初始化.析构 1.初始化 # python中有很多双下划线开头且以下划线结尾的固定方法,它们会在特定的时机被触发执行,这便是特殊方法 # 在实例化的时候就 ...

  2. Python进阶02 文本文件的输入输出

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python具有基本的文本文件读写功能.Python的标准库提供有更丰富的读写功能 ...

  3. Python 进阶02 文本文件的输入输出

    Python 具有基本的文本文件读写功能,Python的标准库提供有更丰富的读写功能. 文本文件的读写主要通过open()所构建的文件对象来实现 创建文件对象 我们打开一个文件,并适用一个对象来表示该 ...

  4. Python进阶量化交易专栏场外篇7- 装饰器计算代码时间

    欢迎大家订阅<教你用 Python 进阶量化交易>专栏!为了能够提供给大家更轻松的学习过程,笔者在专栏内容之外已陆续推出一些手记来辅助同学们学习本专栏内容,目前已推出如下扩展篇: 在第一篇 ...

  5. python进阶06 常用问题库(2)datetime模块 base64

    python进阶06 常用问题库(2)datetime模块 base64 一.datetime模块(时间) 1.datetime.time() t=datetime.time(20,43,30,1) ...

  6. python进阶ing——创建第一个Tornado应用

    python进阶ing——创建第一个Tornado应用 分类: Python2013-06-02 23:02 1725人阅读 评论(2) 收藏 举报 pythonTornado 每天在群里跟很多群友讨 ...

  7. Python学习02 列表 List

    Python学习02 列表 List Python列表 List Python中的列表(List)用逗号分隔,方括号包围(comma-separated values (items) between ...

  8. Python进阶:函数式编程实例(附代码)

    Python进阶:函数式编程实例(附代码) 上篇文章"几个小例子告诉你, 一行Python代码能干哪些事 -- 知乎专栏"中用到了一些列表解析.生成器.map.filter.lam ...

  9. Python网络02 Python服务器进化

    原文:Python网络02 Python服务器进化 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! **注意,在Python 3. ...

随机推荐

  1. 3993: [SDOI2015]星际战争

    3993: [SDOI2015]星际战争 Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 1244  Solved: ...

  2. 2588: Spoj 10628. Count on a tree

    2588: Spoj 10628. Count on a tree Time Limit: 12 Sec  Memory Limit: 128 MBSubmit: 5766  Solved: 1374 ...

  3. 【BZOJ4247】挂饰 背包

    [BZOJ4247]挂饰 Description JOI君有N个装在手机上的挂饰,编号为1...N. JOI君可以将其中的一些装在手机上. JOI君的挂饰有一些与众不同——其中的一些挂饰附有可以挂其他 ...

  4. IIS无法连接LocalDb,怎么办?

    最近安装了vs 2013,电脑配置不太好,所以没有安装数据库,直接使用vs2013自带的localdb工具,直接运行访问本地mdf数据库文件.但是部署到IIS就出问题了.问题就像下面的图片一样. 最后 ...

  5. CAS单点登录------302个没完没了

    我的配置如上 背景:Shiro + Cas 进行的单点登录配置! 其实这个问题很扯淡!看代码! 我本在shiro里面配置的Sucessurl !嘿嘿!我哭了!屌用没有! 我一脸懵逼大写的WHY??? ...

  6. golang 面向对象

    深入理解GO语言的面向对象_Golang_脚本之家 https://www.jb51.net/article/94030.htm 深入理解GO语言的面向对象 更新时间:2016年10月04日 10:4 ...

  7. JavaScript数据结构与算法-队列练习

    队列的实现 // 队列类 function Deque () { this.dataStore = []; this.enqueueFront = enqueueFront; this.enqueue ...

  8. RecyclerView添加分割线

    mRecyclerView = findView(R.id.id_recyclerview); //设置布局管理器 mRecyclerView.setLayoutManager(layout); // ...

  9. 20170411 F-02创建财务凭证

    SAPMF05A 100 X       0   BDC_OKCODE /00   0   BKPF-BLDAT 20170411   0   BKPF-BLART SA   0   BKPF-BUK ...

  10. 【zabbix】zabbix忘记密码,重置密码

    忘记密码这种事经常会发生,这里我们介绍一种zabbix忘记用户密码的处理方式. 原理: zabbix存储在数据库中用户名密码是经过32位,小写,md5加密过的.我们可以手动修改数据库中用户的密码. 实 ...