中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python類反射機制使用實例解析

發布時間:2020-10-24 18:43:29 來源:腳本之家 閱讀:144 作者:MilesMa 欄目:開發技術

這篇文章主要介紹了Python類反射機制使用實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

反射就是通過字符串的形式,導入模塊;通過字符串的形式,去模塊尋找指定函數并執行。

Python有四個內置函數:

函數 功能
getattr(object, attr[, default]) 獲取指定字符串名稱的對象屬性或方法,如果對象有該屬性則返回屬性值,如果有該方法則返回該方法的內存地址,如果都沒有就報錯,如果指定了默認值找不到不會報錯會取默認值
hasattr(object, attr) 判斷指定字符串名稱的對象是否有該屬性或方法,返回True或False
setattr(object, attr, value) 為指定字符串名稱的對象設置屬性,如果對象已有該屬性則覆蓋屬性值,如果沒有該屬性則新增屬性并賦值
delattr(object, attr) 刪除指定字符串名稱的對象的某屬性,如果對象沒有該屬性會報錯

示例:

class Demo:

  def __init__(self):
    self.name = 'abc'

  def method(self):
    pass


# 實例化
d = Demo()

# 獲取對象中的屬性、方法
name = getattr(d, 'name')
func = getattr(d, 'method')
print(name)
print(func)
print('\r')

# 查看是否有屬性或方法
print(hasattr(d, 'name'))
print(hasattr(d, 'method'))
print(hasattr(d, 'abc'))

# 設置對象的屬性值
setattr(d, 'name', 'aaa') # 已有的屬性值會修改
setattr(d, 'age', 10) # 沒有該屬性會新增并賦值

# 刪除對象的屬性
delattr(d, 'name')

輸出結果:

abc
<bound method Demo.method of <__main__.Demo object at 0x00000000028A27F0>>

True
True
False

反射的使用

demo1:

# 導包
time = __import__('time')
# 獲取方法
sleep = getattr(time, 'sleep')
# 調用
sleep(5)

等價于:

# 1
import time
time.sleep(5)
# 2
from time import sleep
sleep(5)

demo2:

# 導包
webdriver = __import__('selenium.webdriver', fromlist=['webdriver'])
# 實例化,獲取方法
driver = webdriver.Chrome()
quit = getattr(driver, 'quit')
# 調用方法
quit()

等價于:

from selenium import webdriver
driver = webdriver.Chrome()
driver.quit()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

休宁县| 资溪县| 慈利县| 江达县| 巴塘县| 建瓯市| 莫力| 兴宁市| 和顺县| 江口县| 广平县| 米易县| 辽宁省| 沅陵县| 澄江县| 喀喇沁旗| 汝南县| 边坝县| 临夏市| 临城县| 西乌珠穆沁旗| 广东省| 汉川市| 四会市| 阳朔县| 彭泽县| 通渭县| 秭归县| 桐乡市| 潞城市| 黑水县| 曲靖市| 无为县| 晋城| 莎车县| 安陆市| 喀什市| 民权县| 湟中县| 南陵县| 屏山县|