python
說Python是動(dòng)態(tài)語言,是由于Python可以在代碼運(yùn)行中可以做更改,但是像C焊傅、Java之類的需要編譯的語言,由于做過編譯就不可以做修改了狈涮,所以是靜態(tài)語言租冠。但是像Python、PHP薯嗤、Ruby之類的動(dòng)態(tài)語言執(zhí)行效率會(huì)不如靜態(tài)語言快顽爹,畢竟中間有一層解釋器。
示例代碼如下:
#coding=utf-8
import types
class Person(object):
num = 100
pass
p1 = Person()
# 給對(duì)象傳遞屬性
p1.name = 'xiaohua'
print(p1.name)
# 給類傳遞屬性
Person.pname = 'human'
print(Person.pname)
print(p1.pname)
print('----------------------------')
def test1(self):
print('--------------self-test1')
def test2(cls):
print('--------------cls-test2')
print(cls.num)
@staticmethod
def test3():
print('--------------test3')
# 添加實(shí)例方法
p1.test1 = types.MethodType(test1,p1,Person)
# 添加類方法
Person.test2 = types.MethodType(test2,Person,type)
# 添加靜態(tài)方法骆姐,這里不能使用types來創(chuàng)建镜粤,不然會(huì)報(bào)一個(gè):沒有參數(shù)卻多傳了一個(gè)參數(shù)的錯(cuò)誤
Person.test3 = test3
p1.test1()
p1.test2()
p1.test3()
#del p1.test1
delattr(p1,test1)
p1.test1()
slots
由于python是個(gè)動(dòng)態(tài)語言捏题,有時(shí)候人們不想讓運(yùn)行的代碼做修改,__slots__
就是起到了這個(gè)作用肉渴。
但是由于__solts__
是個(gè)私有屬性公荧,所以如果一個(gè)子類集成了這個(gè)父類,子類是可以隨意增加屬性的