python3.5入門筆記(二)
(一)反射:如根據輸入的字串判斷、設定、刪除,獲取在類中有對映對於的動態方法/靜態屬性。即將字元穿反射在類屬性/方法在記憶體的地址。
1.例如:
def bulk(self):
print("給類新增一個方法%s"%self.name)
class Dog(object):
def __init__(self,name):
self.name=name
def eat(self,food):
print("%s is eating %s"%(self.name,food))
d=Dog("板栗")
choice=input("請輸入:").strip() #輸入的是字串。
if hasattr(d,choice): #判斷在例項化類d中是否有對應字串名對映的動態方法/靜態屬性,如eat/name。
func=getattr(d,choice) #獲取例項化d中對映的動態方法/靜態屬性。
delattr(d,choice) #刪除對映的靜態屬性/動態方法
func("骨頭") #如果是動態方法就func()函式呼叫,如果是靜態方法,就setattr(d,choice,"新的值")
else:
setattr(d,choice,bulk) #bulk可以是函式,也可是新增靜態屬性新的值。
a=getattr(d,choice)
a(d) #如果輸入的字串在類中沒有對映的方法,就給類建立一個talk方法。
(二)網路通訊:一個電腦最多65535個埠,一個網絡卡一個IP,一臺電腦可以有多個網絡卡(IP)。
注意:socket.SOCK_RAW:修改IP地址頭,可偽造IP地址。如實現'洪水攻擊',