1:参考与对象
当你创建一个对象并给它赋一个变量的时候,这个变量仅仅 参考 那个对象,而不是表示这个对象本身!也就是说,变量名指向你计算机中存储那个对象的内存。这被称作名称到对象的绑定。
例如:
shoplist = ['apple', 'mango', 'carrot', 'banana']
mylist = shoplist
del shoplist[0]
#shoplist
is ['mango', 'carrot', 'banana']
#mylist is ['mango', 'carrot', 'banana']
//拷贝
print 'Copy
by making a full slice'
mylist = shoplist[:] # make a copy by doing a full slice
del mylist[0]
#shoplist
is ['mango', 'carrot', 'banana']
#mylist is ['carrot', 'banana']
注意:记住列表的赋值语句不创建拷贝。你得使用切片操作符来建立序列的拷贝。
2:切片和索引: Python从0开始计数
2.1 索引同样可以是负数,在那样的情况下,位置是从序列尾开始计算的。因此,shoplist[-1]表示序列的最后一个元素而shoplist[-2]抓取序列的倒数第二个项目。
2.2切片操作符是序列名后跟一个方括号,方括号中有一对可选的数字,并用冒号分割。注意这与你使用的索引操作符十分相似。记住数是可选的,而冒号是必须的。同样负数也是从后面开始计算
例如:
shoplist = ['apple', 'mango', 'carrot', 'banana']
print 'Item
0 is', shoplist[0]
print 'characters
1 to -1 is', name[1:-1]
print 'characters start to end
is', name[:]
3:备份脚本
例子:
import os import time source=[r'D:\desktop',r'D:\wifi'] target_dir = "D:\\pythonZip\\" target = target_dir+time.strftime('%Y%m%d%H%M%S')+'.zip' zip_command = "zip -qr %s %s" % (target, " ".join(source)) print(zip_command) if os.system(zip_command) == 0: print('Successful backup to', target) else: print('Backup FAILED')注意1:
首先在命令行下看是否安装了ZIP包。windows下默认是不安装的。如果未安装,下载地址:https://sourceforge.net/projects/gnuwin32/files/zip/3.0/zip-3.0-setup.exe/download?use_mirror=nchc
然后配置环境变量。
注意2:-q选项用来表示zip命令安静地工作。-r选项表示zip命令对目录递归地工作
zip_command = "zip -qr %s %s" % (target, " ".join(source))
命令字符串现在将称为:
tar ='tar -cvzf %s %s -X /home/swaroop/excludes.txt'% (target,' '.join(srcdir))选项解释如下:
-c表示创建一个归档。-v表示交互,即命令更具交互性。-z表示使用gzip滤波器。-f表示强迫创建归档,即如果已经有一个同名文件,它会被替换。-X表示含在指定文件名列表中的文件会被排除在备份之外。例如,你可以在文件中指定*~,从而不让备份包括所有以~结尾的文件。
__init__方法在类的一个对象被建立时,马上运行
例子:
classPerson:def__init__(self, name): self.name = namedefsayHi(self):'Hello, my name is', self.namep = Person('Swaroop') p.sayHi()
说明:self 区分类和普通函数 不用赋值self:类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Python会提供这个值。这个特别的变量指对象本身,按照惯例它的名称是
self。
5:文件操作
file类的对象来打开一个文件,分别使用file类的read、readline或write方法来恰当地读写文件,模式可以为读模式('r')、写模式('w')或追加模式('a'),首先用写模式打开文件,然后使用file类的write方法来写文件,最后我们用close关闭这个文件。
例子:
poem="hello,world"
f
= file('poem.txt', 'w') #
open for 'w'riting
f.write(poem) # write text to file
f.close() # close the file
f = file('poem.txt')
# if no mode is specified, 'r'ead mode is assumed by default
while True:
line = f.readline()
if len(line)
== 0: #
Zero length indicates EOF
break
print line,
# Notice comma to avoid automatic newline added by Python
f.close()
6:存储器
Python提供一个标准的模块,称为pickle和cPickle
,cPickle比Pickle快1000倍。
首先以写模式打开一个file对象,然后调用储存器模块的dump函数,把对象储存到打开的文件中。这个过程称为 储存 。
接下来,我们使用pickle模块的load函数的返回来取回对象。这个过程称为 取储存 。
基本接口:
pickle.dump(obj, file, [,protocol])
注解:将对象obj保存到文件file中去。
protocol为序列化使用的协议版本,0:ASCII协议,所序列化的对象使用可打印的ASCII码表示;1:老式的二进制协议;2:2.3版本引入的新二进制协议,较以前的更高效。其中协议0和1兼容老版本的python。protocol默认值为0。
file:对象保存到的类文件对象。file必须有write()接口, file可以是一个以'w'方式打开的文件或者一个StringIO对象或者其他任何实现write()接口的对象。如果protocol>=1,文件对象需要是二进制模式打开的。
pickle.load(file)
注解:从file中读取一个字符串,并将它重构为原来的python对象
例子:
import pickle as p storage = ['hello', 'world', 'test'] filepath1 = 'D:\\pythonZip\\a.txt' f = open(filepath1, "wb+") p.dump(storage, f, 0) f.close() del storage f = open(filepath1, "rb") storage1=p.load(f) print(storage1)
:7:exec和eval语句
exec语句用来执行储存在字符串或文件中的Python语句
例如:
>>> exec 'print "Hello World"'
Hello World
eval语句用来计算存储在字符串中的有效Python表达式
例如:
>>>
eval('2*3')
6
本文介绍了Python中的对象引用概念、序列的切片与索引操作、备份脚本编写、类的初始化方法、文件操作方法、对象持久化技术和代码执行技巧等关键知识点。
731

被折叠的 条评论
为什么被折叠?



