Python动态语言的特性有哪些

  介绍

这期内容当中小编将会给大家带来有关Python动态语言的特性有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

<强>一、动态语言的定义

动态语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。现在比较热门的动态语言有:Python, PHP, JavaScript, objective - C等,而C, c++等语言则不属于动态语言。

<强>二、运行的过程中给对象绑定(添加)属性

class 人(对象):   ,,,def  __init__(自我,name=没有,年龄=None):   ,,,,,,,self.name=名字   ,,,,,,,self.age=年龄   时间=p 人(“小明“,“24“)   打印(p.name)   打印(p.a ge)

运行结果为:

小明   24

这里我们只定义了姓名和年龄两个属性,但是在类已经定义好了之后,我们仍然可以往里面添加属性,这就是动态语言的好处,动态的给实例绑定属性:

class 人(对象):   ,,,def  __init__(自我,name=没有,年龄=None):   ,,,,,,,self.name=名字   ,,,,,,,self.age=年龄   时间=p 人(“小明“,“24“)   打印(p.name)   打印(p.a ge)   #动态添加属性   p.sex =,“男”;   打印(p.sex)

运行结果为:

小明   24   男

<强>三、运行的过程中给类绑定(添加)属性

class 人(对象):   ,,,def  __init__(自我,name=没有,年龄=None):   ,,,,,,,self.name=名字   ,,,,,,,self.age=年龄   时间=P1 人(“小明“,24)   打印(P1.sex)

运行结果为:

Traceback  (most  recent  call 最后):   File 才能“C: \ Se7eN_HOU \ \用户桌面\ test.py",, line  8日,拷贝& lt; module>   ,,,印刷(P1.sex)   AttributeError: & # 39;简历及# 39;,object  has  no  attribute  & # 39;性与# 39;

这是程序报错说,没人有性爱这个属性,我们可以通过给人动态绑定属性,解决问题。

class 人(对象):   ,,,def  __init__(自我,name=没有,年龄=None):   ,,,,,,,self.name=名字   ,,,,,,,self.age=年龄   时间=P1 人(“小明“,24)   #动态给类添加属性   Person.sex =,“男”;   打印(P1.sex)

这个时候在运行就不会出的错,而且会打印出P1.sex为男。

<强>四、运行的过程中给类绑定(添加)方法

class 人(对象):   ,,,def  __init__(自我,name=没有,年龄=None):   ,,,,,,,self.name=名字   ,,,,,,,self.age=年龄   ,,,def 吃(自我):   ,,,,,,,印刷(“正在吃东西“)   时间=P1 人(“小明“,24)   P1.eat ()   P1.run ()

运行结果为:

正在吃东西   Traceback  (most  recent  call 最后一个):   File 才能“C: \ Se7eN_HOU \ \用户桌面\ test.py",, line  11日,拷贝& lt; module>   ,,,P1.run ()   AttributeError: & # 39;简历及# 39;,object  has  no  attribute  & # 39;运行# 39;

说明:正在吃东西打印出来了,说明吃函数被执行,但是后面报错说没有运行这个属性,但是我想在类创建好了以后,在运行的时候动态的添加运行方法怎么办呢?

#动态添加方法需要导入类型模块   import 类型   class 人(对象):   ,,,def  __init__(自我,name=没有,年龄=None):   ,,,,,,,self.name=名字   ,,,,,,,self.age=年龄   ,,,def 吃(自我):   ,,,,,,,印刷(“正在吃东西“)   #定义好需要动态添加的方法   def 运行(自我):   ,,,print(“在跑步“)   ,,,,   时间=P1 人(“小明“,24)   #正常调用类里面的函数   P1.eat ()   #给对象动态绑定方法   时间=P1.run  types.MethodType(运行,P1)   #对象调用动态绑定的方法   P1.run ()

运行结果为:

正在吃东西   以前在跑步

打印出来“在跑步”说明运行方法被正常执行了

<强>动态绑定类方法和静态方法

#动态添加方法需要导入类型模块   import 类型   class 人(对象):   ,,,def  __init__(自我,name=没有,年龄=None):   ,,,,,,,self.name=名字   ,,,,,,,self.age=年龄   ,,,def 吃(自我):   ,,,,,,,印刷(“正在吃东西“)   #定义好需要动态添加的实例方法   def 运行(自我):   ,,,print(“在跑步“)   #定义好需要动态添加的类方法   @classmethod   def  dynamicClassMethod (cls):   ,,,print(“这是一个动态添加的类方法“)   #定义好需要动态添加的静态方法   @staticmethod   def  dynamicStaticMethod ():   ,,,print(“这是一个动态添加的静态方法“)   ,,,,   时间=P1 人(“小明“,24)   #正常调用类里面的函数   P1.eat ()   #给对象动态绑定方法   # MethodType(参数1,参数2)   #参数1:是动态绑定哪个方法,只写方法名即可   #参数2:是把这个方法动态的绑定给谁   时间=P1.run  types.MethodType(运行,P1)   P1.run ()   #动态绑定类方法的使用   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

Python动态语言的特性有哪些