相關(guān)推薦
您可能對下面課程感興趣
Python上位機開發(fā)教程

105小節(jié)已有8684人學(xué)過

Python上位機開發(fā)反射
發(fā)布時間:2024-11-20 09:33 [ 我要自學(xué)網(wǎng)原創(chuàng) ] 發(fā)布人: 快樂小女 閱讀: 91


"""
在 Python中,反射(Reflection)是指程序在運行時能夠獲取自身的信息以及動態(tài)地操作對象的屬性和方法。

主要涉及以下幾個內(nèi)置函數(shù):
hasattr(obj, name):用于判斷對象 obj 是否具有名為 name 的屬性或方法。
getattr(obj, name[, default]):獲取對象 obj 中名為 name 的屬性或方法,如果不存在且指定了 default,則返回 default,否則拋出 AttributeError 異常。
setattr(obj, name, value):設(shè)置對象 obj 中名為 name 的屬性值為 value。
delattr(obj, name):刪除對象 obj 中名為 name 的屬性。
下面是一個簡單的示例,展示了反射的基本用法:"""

# class MyClass:
#     def __init__(self):
#         self.x = 10
#
#     def my_method(self):
#         print("Hello, Reflection!")
#
#
# obj = MyClass()

# 判斷是否具有屬性或方法
# if hasattr(obj, 'my_method'):
#     print("對象具有該方法")
# else:
#     print("沒有該屬性")

# # 獲取屬性
# print(getattr(obj, 'x'))

# 獲取方法并調(diào)用
# method = getattr(obj,'my_method')
# method()

# 設(shè)置屬性
# setattr(obj, 'y', 20)
# print(obj.y)  # 輸出 20

# 刪除屬性
# delattr(obj, 'x')
# try:
#     print(obj.x)
# except AttributeError:
#     print("'x' 屬性已被刪除")
#

from PySide6.QtWidgets import *
from PySide6.QtCore import *
from PySide6.QtGui import *


class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.resize(800,600)
        self.setWindowTitle("反射方法應(yīng)用")

        for i in range(60):
            setattr(self,f'btn{i}',QCheckBox(f'復(fù)選框{i}',self))

        layout = QGridLayout()
        for i in range(60):
            btn = getattr(self,f'btn{i}')
            layout.addWidget(btn,i//10,i%10)

        self.setLayout(layout)

        self.btn23.setChecked(True)





if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    win = Window()
    win.show()
    sys.exit(app.exec())

Python上位機開發(fā)教程
我要自學(xué)網(wǎng)商城 ¥80 元
進入購買
文章評論
0 條評論 按熱度排序 按時間排序 /350
添加表情
遵守中華人民共和國的各項道德法規(guī),
承擔(dān)因您的行為而導(dǎo)致的法律責(zé)任,
本站有權(quán)保留或刪除有爭議評論。
參與本評論即表明您已經(jīng)閱讀并接受
上述條款。
V
特惠充值
聯(lián)系客服
APP下載
官方微信
返回頂部
相關(guān)推薦
您可能對下面課程感興趣
Python上位機開發(fā)教程

105小節(jié)已有8684人學(xué)過

分類選擇:
電腦辦公 平面設(shè)計 室內(nèi)設(shè)計 室外設(shè)計 機械設(shè)計 工業(yè)自動化 影視動畫 程序開發(fā) 網(wǎng)頁設(shè)計 會計課程 興趣成長 AIGC