动态编程语言是 高级程序设计语言 的一个类别,在计算机科学领域已被广泛应用。它是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。动态语言目前常具有活力。例如JavaScript便是一个动态语言,除此之外如PHP 、 Ruby 、 Python 等也都属于动态语言,而 C 、 C++ 等语言则不属于动态语言。
"""运行的过程中给对象添加属性"""
class Person(object):
def __init__(self,name=None,age=None):
self.name=name
self.age=age
P=Person('小明','24')
P.sex='male'
print(P.sex)#定义的类中没有sex这个属性,实际上就是动态给实例绑定属性
"""运行过程中给类绑定属性"""
# P1=Person('小里','22')
# print(P1.sex)#尝试打印P1.sex,发现报错,P1没有这个属性!给P这个实例绑定的属性对P1这个实例不起作用!
"因此给所有的Person的实例绑定sex属性"
Person.sex=None#给类Person添加一个属性
P1=Person('xiaoli','22')
print(P1.sex)
import types
"""运行过程中给类绑定方法"""
class Person(object):
num = 0
def __init__(self,name=None,age=None):
self.name=name
self.age=age
def eat(self):
print('eat food')
#定义一个实例方法
def run(self,speed):
print('%s在移动,速度是%d km/h'%(self.name,speed))
#定义一个类方法
@classmethod
def testClass(cls):
cls.num=100
#定义一个静态方法
@staticmethod
def testStatic():
print('---static method')
#创建一个实例对象
P=Person('老王',24)
#调用在class中的方法
P.eat()
#给这个对象添加实例方法
P.run=types.MethodType(run,P)
#调用实例方法
P.run(180)
#给Person类绑定类方法
Person.testClass=testClass
#调用类方法
print(Person.num)
Person.testClass()
print(Person.num)
#给Person类绑定静态方法
Person.testStatic=testStatic
#调用静态方法
Person.testStatic()