python为什么是动态语言

首先要理解什么是动态语言:通俗地说:能够在运行时修改自身程序结构的语言,就属于动态语言。那怎样才算是“运行时修改自身程序结构”呢?比如下面这几个例子都算:在运行时给某个类增加成员函数及成员变量;在运行时改变某个类的父类;在运行时创建出某个函数.。

Python是可以实现动态类的创建类(在任意代码位置,符合正确的书写格式),或者给类增加删除属性。因为类也是对象,你可以在运行时动态的创建它们,就像其他任何对象一样。首先,你可以在函数中创建类,使用class关键字即可。

相关推荐:《Python入门教程》

例子:

def choose_class(name):
    if name == 'foo':
        class Foo(object):
            pass
        return Foo     # 返回的是类,不是类的实例
    else:
        class Bar(object):
            pass
        return Bar
#如果你觉得还不够动态,因为你仍然需要自己编写整个类的代码。由于类也是对象,所以它们必须是通过什么东西来生成的才对。
当你使用class关键字时,Python解释器自动创建这个对象。但就和Python中的大多数事情一样,Python仍然提供给你手动处理的方法。
内建函数中有一个名叫type的内建函数,这个内建函数古老但强大的函数, 它能够让你知道一个对象的类型是什么,就像这样:
 
>>> MyShinyClass = type('MyShinyClass', (), {})  # 返回一个类对象
>>> print MyShinyClass<class '__main__.MyShinyClass'
>>>> print MyShinyClass()  #  创建一个该类的实例
<__main__.MyShinyClass object at 0x8997cec>另附type使用方法:
#type(类名, 父类的元组(针对继承的情况,可以为空),包含属性的字典(名称和值))

来源:PY学习网:原文地址:https://www.py.cn/article.html

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » python为什么是动态语言