赋值
赋值是对内存地址的引用
浅拷贝浅拷贝就是额外在内存中创建第一层数据,注意第一层的意思是最外层的数据,然后第一层的数据仍然指向原来内存中的数据
浅拷贝是新建了子对象,仅仅拷贝了第一层的数据,但是内部的数据还是引用
最外层的数据改变原始数据的最外层,深浅拷贝都已经拷贝了这一层,不会首影响,只有原来的数据改变
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...