classpeople:
def__init__
(self,name,age):
self.name=name
self.age=age
defsay(self):
print('
<%s:%s>
' %(self.name,self.age))
obj=people('
辣白菜同學
',18)
#實現反射機制的步驟
#1、先通過多dir:檢視出某乙個物件下可以.出哪些屬性來
(dir(obj))
#2、可以通過字串反射到真正的屬性上,得到屬性值
print(obj.__dict__[dir(obj)[-2]])
# 輸出結果:['
__class__
', '
__delattr__
', '
__dict__
', '
__dir__
', '
__doc__
', '
__eq__
', '
__format__','
__ge__
', '
__getattribute__
', '
__gt__
', '
__hash__
', '
__init__
', '
__init_subclass__
', '
__le__
', '
__lt__
', '
__module__
', '
__ne__
', '
__new__
', '
__reduce__
', '
__reduce_ex__
', '
__repr__
', '
__setattr__
', '
__sizeof__
', '
__str__
', '
__subclasshook__
', '
__weakref__
', '
age', '
name
', '
say'
]辣白菜同學
classteacher:
def__init__
(self,full_name):
self.full_name =full_name
t=teacher('
egon lin')
#hasattr(object,'name')
hasattr(t,'
full_name
') #
按字串'full_name'判斷有無屬性t.full_name
#getattr(object, 'name', default=none)
getattr(t,'
full_name
',none) #
等同於t.full_name,不存在該屬性則返回預設值none
#setattr(x, 'y', v)
setattr(t,'
age',18) #
等同於t.age=18
#delattr(x, 'y')
delattr(t,'
age') #
等同於del t.age
obj=10if hasattr(obj,'x'
):
print(getattr(10,'x'
))else
:
pass
print(getattr(obj,'x'
,none))
if hasattr(obj,'x'
): setattr(obj,'x
',111111111) #
10.x=11111
else
:
pass
class
ftp:
defput(self):
print('
正在執行上傳功能')
defget(self):
print('')
definteractive(self):
method=input("
>>>:
").strip() #
method='put'
ifhasattr(self,method):
getattr(self,method)()
else
:
print('
輸入的指令不存在')
obj=ftp()
obj.interactive()
#執行結果:
#none
#>>>: put
#正在執行上傳功能##
程序已結束,退出** 0
2020Python練習十 函式的引數
2020.3.18 1 寫函式,使用者傳入修改的檔名,與要修改的內容,執行函式,完成批量修改操作 def modify file filename,old,new import os with open filename,r encoding utf 8 as read f,open bak.swa...
2020 Python從入門到不放棄自學筆記3
迴圈結構練習 原題為判斷乙個輸入的數值是不是質數 我把這個題目加以改造,迴圈生成所有質數 使用了 while for迴圈結構 x 2 定義初始值 prime 定義乙個空列表 while x 0 無限迴圈,此處也可以用while true y 0 定義初始可整除次數 for i in range 2 ...
2020 Python從入門到不放棄自學筆記4
今日練習 實現將乙個正整數反轉,例如 將12345變成54321 書上的標準答案 正整數的反轉 version 0.1 author 駱昊 num int input num reversed num 0while num 0 reversed num reversed num 10 num 10 ...