我知道您可以使用__getattr__()该类的属性来访问不存在的属性。然而我想用函数做同样的事情。
我读到Python对待属性和方法是一样的,所以你__getattr__()也使用for方法。这是真的?
class container:
def __init__(self, data):
self.data = data
def __getattr__(self, item):
##Don't know the code to put here vv
result = getattr(self.data, item)
class data:
def printHello(self):
print("hello")
def printString(self, string):
print(string)
def main():
someData = data()
someContainer = container(someData)
someContainer.printString("sup")
main()
Run Code Online (Sandbox Code Playgroud)
目标:我希望能够编写container.printHello()并让它调用container.data.printHello(). 我还想要一个能够传递参数的解决方案printString()。我该怎么做呢?
注意:这是一种简化。实际上,我有大量方法,在开发程序时我不断添加、删除和更改方法名称
你几乎已经拥有了,你只需要归还你所拥有的。
class Container:
def __init__(self, data):
self.data = data
def __getattr__(self, attr):
return getattr(self.data, attr)
class Data:
def print_hello(self):
print("hello")
def print_string(self, string):
print(string)
Container(Data()).print_hello()
Container(Data()).print_string('foo')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2604 次 |
| 最近记录: |