动态语言和静态语言

在说明什么是动态语言和静态语言之前,先澄清一下标题中的名字。

我们通常的所指的动态语言和静态语言其实是动态类型类型语言和静态类型语言。

 

上面的2句话被删除了,因为是错误的,那是我当初的认识。

动态语言不只体现在类型是动态变化的,并且对象的属性可以变化—–在运行时可以增加和减少对象的属性。

常见的静态语言如c/c++, java,c#。动态语言如,javascript, python, ruby。

 

类型的动态变化

例如,python定义一个函数:

def func( a, b ):
    return a + b

上面a,b是什么类型,只有等运行的时候才能知道,但是如果是c/c++, java,c#中,那么在编译时刻就必须知道a , b的类型。

 

对象属性的动态变化

先定义一个类,然后在运行时,动态的增加一个变量属性和方法属性,然后再动态的减少一个属性:

 

class ca:
    x = 0L
    def func( sef ):
        print( "ca" )

a = ca()
#先查看当前对象的属性
print ( dir(a))    
输出->['__doc__', '__module__', 'func', 'x']

#添加一个属性-变量
a.y = 'added'
print( dir(a))     
输出->['__doc__', '__module__', 'func', 'x', 'y']

#添加一个属性-方法
def func1():
    print('outside')
a.func1 = func1
print (dir(a))     
输出->['__doc__', '__module__', 'func', 'func1', 'x', 'y']

#删除一个属性
del a.x
print( dir(a))   
输出->['__doc__', '__module__', 'func', 'func1', 'y']

 

以上是个简单的描述,待完善…



版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

Leave a Reply

Your email address will not be published. Required fields are marked *