1. 程式人生 > >python3.5入門筆記(二)

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地址。如實現'洪水攻擊',