假设我有以下课程:
import webbrowser
class Management(object):
def add_accounts(self, data):
operations = []
for account_name in data:
operations.append(
{'operator': 'ADD',
'operand': {'name': account_name}
})
self.added = operations
manager = Management()
manager.add_accounts(['name 1', 'name 2'])
我想要做的是添加此功能:
def source():
url = r'http://www.stackoverflow.com/some-help-doc'
webbrowser.open(url, new=1)
到add_accounts
方法,以便输入以下内容:
manager.add_accounts.source()
让它打开我的默认浏览器到在线帮助文章:
我一直在寻找如何将方法添加到类中已有的方法中。我正在尝试做什么名称?
答案 0 :(得分:0)
正如@BrenBam在评论中指出的那样,方法确实有属性,那些可以是任何东西,包括函数。然而,这将使一些奇怪的非Pythonic代码。如果您希望此方法显示某种文档(如示例所示),那么将信息复制到文档字符串会更好。 Docstring是每个人都希望信息的地方。
答案 1 :(得分:0)
这似乎是目前最好的选择:
import webbrowser
class Management(object):
def __init__(self):
Management.add_accounts.source = lambda url='https://github.com/': webbrowser.open(url, new=1)
def add_accounts(self, data):
operations = []
for account_name in data:
operations.append(
{'operator': 'ADD',
'operand': {'name': account_name}
})
self.added = operations
manager = Management()