编程语言学习——python(1)

  python中一切皆对象,我觉得这里的对象和面向对象编程中的对象应该是不一样的。python中变量1,'a',函数,类,模块都是对象,在使用type()函数的时候,对于上面的几个对象都会返回一个结构相似的内容<type '类型'>,其中a为定义的函数,b为定义的类。

>>> print type(a)
<type 'function'>
>>> print type(b)
<type 'classobj'>
>>> print type(1)
<type 'int'>

  python是动态类型语言,即应用与对象分离的(定义变量时不要声明它的类型,而是在赋值的时候将变量的应用给变量名)。这里的应用是指内存地址,和指针有点类似。我们用名字表示应用,变量名、函数名、类名等,使用id()函数可以查看名字所对应的地址值。对象则就是上面说的变量(1,'a',True),函数,类等。

  

  python中一切皆对象,则内存中python应该是使用相同的方法管理各种对象的。应用是用来使用对象的,赋值语句可以看做对象与应用的链接。

#变量,这里只有一个对象1,a/b/c都是对象1的应用
a=1
b=1
c=a

#新的对象2,此时a不再是1的应用,而是2的应用
a=2

#函数,f,f2为下面同一个函数的应用
def f():
    print "abc"

f2=f
#此时f变成了'a'对象的应用,不再是上面函数的应用
f='a'

  python对象在内存中,都维护着一个应用计数,新增应用时加,删除应用时减。计数为0时,就有可能清除该对象所占的内存。清除与否是与对象的内容和python中的gc设置有关的。gc是python关于垃圾回收相关的一个库。

原文地址:https://www.cnblogs.com/z964166725/p/5675725.html