python的初步认识

时间:2022-09-23 00:17:47

基本知识

python在自动化运维方面越做越多,只掌握shell似乎落伍了,在学习python之前先温习一下什么是面向过程和面向对象。

面向过程:以指令为中心,由指令处理数据。组织代码解决问题

面向对象:以数据为中心,所有处理代码都围绕数据展开。设计数据结构
bash是面向过程的,python支持面向对象和面向对象,但python的数据都是对象

我之前做数据库运维的时候一直都是用的shell,所有表喜欢拿shell来做比较,python在调用linux命令时可能会调用接口才能实现,从这一点讲shell在完成linux任务时更便捷高效。文本处理的能力高于shell

对象和变量的理解

对象:python中一切皆对象。
如1为整型数据,在py中1也是对象,且是不可变对象,id(1)为1的内存地址,num为变量,是指向内存的引用,变量名也是对象,变量名指向变量的第一个内存地址
比如
>>> num='jerry'
>>> type(num)
<type 'str'>
num变量名存放在内存中,指向存放jerry的第一个内存地址,‘=’就是把变量与对象进行绑定

变量:内存引用标识

为了加深对象和变量的关系,我们举出列表的例子
>>> print a
['this', 'is', 234]
>>> id(a[0])
139787435361216
>>> id(a)
139787435406688
>>> a[0]='that'
>>> id(a)
139787435406688
>>> id(a[0])
139787539164928
>>> a[0]='lzl'
>>> id(a[0])
139787539185952
>>> id(a)
139787435406688

只有当对象发生变化时,id才会变化。比如列表a未被赋值,而a[0]被赋值,则id(a)不变,id(a[0])改变。可以这样理解,变量只是内存的标志,存放的内存的第一个地址,如果对象又多个对象组成,则子对象改变,母对象的地址也不会改变,只是在母对象中的存放的子对象地址发生了改变。

如果按照c的模式来理解就很容易,其实就是指针和地址的问题

python跟c的概念太像了,类、对象、数组等等,从这几天的初步认知来看,主要是python有很多已封装好的类,可以直接import然后调用,方便了很多

c很古板,不易编程,但是确实是很基础的东西,多于学习其他开发语言有很大的帮助,特别是从原理上。看来学好c还是很重要的