簡體   English   中英

Python 默認“通配符” function - 可能嗎?

[英]Python default 'wildcard' function - possible?

這是我的 class 代碼:

class Example:
    def __init__(self):
        self.parameter1 = 1
    
    def standardFunction(self):
        print("Hello")

是否可以初始化Example class 並確保可能為此特定實例調用的每個方法將始終指向standardFunction

例如:

ex1 = Example()
ex1.test1()

打印“你好”

ex1.test2()

打印“你好”

ex1.test3.test4()

打印“你好”

ex1.test5().test6().IamBatman(42)

打印“你好”

基本上,我希望始終調用Example.standardFunction() ,而忽略第一個“點”之后的字符串。 另外,我不知道點后面放的是什么——它可能是任何字符串、int、float 或 null。

是否可以使用 Python 實現這種行為?

是的,我們可以通過重載__getattr__在 Python 中實現類似的行為。 像這樣,

class Example:
    def __init__(self):
        self.parameter1 = 1
    
    def standardFunction(self):
        print("Hello")

    def __getattr__(self, name):
        return self.standardFunction

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM