Python深浅拷贝详细深入

赋值 赋值是对内存地址的引用 浅拷贝浅拷贝就是额外在内存中创建第一层数据,注意第一层的意思是最外层的数据,然后第一层的数据仍然指向原来内存中的数据 浅拷贝是新建了子对象,仅仅拷贝了第一层的数据,但是内部的数据还是引用 最外层的数据改变原始数据的最外层,深浅拷贝都已经拷贝了这一层,不会首影响,只有原来的数据改变 123456789101112i1={'k3': ['hijack', 678], 'k2': 123, 'k1': 'hi'}import copyi2=copy.copy(i1)i3=copy.deepcopy(i1)>>> i1["k4"]="add_data_test">>> i2{'k3': ['hi...

阅读全文

Python内存管理

1.Python是如何进行内存管理的? 答:从三个方面来说,一对象的引用计数机制,二垃圾回收机制,三内存池机制 一、对象的引用计数机制Python内部使用引用计数,来保持追踪内存中的对象,所有对象都有引用计数。引用计数增加的情况:1,一个对象分配一个新名称2,将其放入一个容器中(如列表、元组或字典)引用计数减少的情况:1,使用del语句对对象别名显示的销毁2,引用超出作用域或被重新赋值sys.getrefcount( )函数可以获得对象的当前引用计数多数情况下,引用计数比你猜测得要大得多。对于不可变数据(如数字和字符串),解释器会在程序的不同部分共享内存,以便节约内存。 二、垃圾回收1,当一个对象的引用计数归零时,它将被垃圾收集机制处理掉。2,当两个对象a和b相互引用时,del语句可以...

阅读全文

Python pep8代码规范

介绍(Introduction) 官方文档:PEP 8 – Style Guide for Python Code 很多的项目都有自己的代码规范,如果和自己的项目冲突,优先按照自己项目的规范。 保持盲目的一致是头脑简单的表现(A Foolish Consistency Is The Hobgoblin Of Little Minds) 代码风格(Code lay-out)缩进(Indentation)采用4个空格进行缩进,对于续行来说,4空格的规则可以不遵守。 续行有两种方式:隐式续行,悬挂续行。隐式续行是垂直对齐于圆括号、方括号和花括号。悬挂续行注意两点:第一行不包含参数,在续行中要再缩进一级 YES123456789101112131415# 同开始分界符(左括号)对齐foo = ...

阅读全文

名称空间 作用域 闭包

什么是名称空间 名称空间是存放名字的地方,对于x=1来说,1存放在内存中,x这个名字和x=1之间的绑定关系存放在名称空间中。 名称空间的加载顺序对于test.py来说1231、Python解释器先启动,先加载内置名称空间2、对于test.py这个文件,加载文件中的全局名称空间,如函数名,定义的变量名3、在执行文件中的代码的时候,调用函数,临时产生局部名称空间 名字的查找顺序局部名称空间–》全局名称空间–》内置名称空间 在全局无法查看局部的,在局部可以查看全局的 作用域作用域就是范围 全局作用域:内置名称空间、全局名称空间属于这个范围,全局存活,全局有效 局部作用域:局部名称空间属于该范围,临时存活,局部有效 作用域在函数定义的时候就确定了,与函数的调用位置无关 查看作用域:glob...

阅读全文

Django+Nginx+uwsgi部署

Mysql配置 在项目同名文件的init.py文件中配置pymyql的连接123import pymysqlpymysql.install_as_MySQLdb() 在settings中配置数据库12345678910DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'baoleiji', 'USER': 'abc', 'PASSWORD': '123', 'HOST': 'localhost', 'PORT': 3306, }} settings中配置al...

阅读全文

© 2018 Peter's Blog Center All Rights Reserved.
Theme by hiero