Python 3.x Python默认值';通配符';功能-可能吗?

Python 3.x Python默认值';通配符';功能-可能吗?,python-3.x,Python 3.x,这是我的班级代码: class Example: def __init__(self): self.parameter1 = 1 def standardFunction(self): print("Hello") 是否可以初始化示例类,并确保为此特定实例调用的每个方法始终指向标准函数 例如: ex1 = Example() ex1.test1() 打印“你好” 打印“你好” 打印“你好” 打印“你好” 基本上,我

这是我的班级代码:

class Example:
    def __init__(self):
        self.parameter1 = 1
    
    def standardFunction(self):
        print("Hello")
是否可以初始化
示例
类,并确保为此特定实例调用的每个方法始终指向
标准函数

例如:

ex1 = Example()
ex1.test1()
打印“你好”

打印“你好”

打印“你好”

打印“你好”


基本上,我希望总是调用
Example.standardFunction()
,忽略第一个“点”后面的字符串。另外,我不知道点后面放的是什么-它可以是任何字符串、int、float或null


Python有可能实现这种行为吗?

是的,我们可以通过重载
\uuu getattr\uuu
在Python中实现类似的行为。像这样,

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

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

是的,我们可以通过重载
\uu getattr\uu
在Python中实现类似的行为。像这样,

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

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

您可以为任意属性访问实现
\uuuuu getattr\uuuuu
,但名称仍然必须是有效的标识符,点表示法才能工作。“另外,我不知道点后面放了什么-它可能是任何字符串、int、float或null。”这没有任何意义。“放在点后面”是一个有效的标识符,即它是源代码。它不是类型为的对象。对于int,
Example.123
是一个语法错误,即使是字符串,
Example.123
是一个语法错误注意,
ex1.test3.test4()
只有在
standardFunction
返回
self
谢谢大家,这就解决了我的问题。通过说“我不知道点后面是什么”——我的意思是它可能是真的任何东西——我试图模仿另一个模块的行为(该模块不是我维护的,并且已损坏)。我无法预测其他人会怎么称呼这门课。。。我知道这并不完美,但这就是生活。你可以实现
\uuuu getattr\uuuu
来访问任意属性,但是名称仍然必须是有效的标识符,点符号才能工作。“另外,我不知道点后面放的是什么-它可以是任何字符串、int、float或null。”这没有任何意义。“放在点后面”是一个有效的标识符,即它是源代码。它不是类型为的对象。对于int,
Example.123
是一个语法错误,即使是字符串,
Example.123
是一个语法错误注意,
ex1.test3.test4()
只有在
standardFunction
返回
self
谢谢大家,这就解决了我的问题。通过说“我不知道点后面是什么”——我的意思是它可能是真的任何东西——我试图模仿另一个模块的行为(该模块不是我维护的,并且已损坏)。我无法预测其他人会怎么称呼这门课。。。我知道这并不完美,但这就是生活。
ex1.test5().test6().IamBatman(42)
class Example:
    def __init__(self):
        self.parameter1 = 1
    
    def standardFunction(self):
        print("Hello")

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