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