gpt4 book ai didi

Python-使用不同的参数重载相同的函数

转载 作者:行者123 更新时间:2023-11-30 22:18:17 25 4
gpt4 key购买 nike

我有一个设置功能的函数,并且想要它的两个版本。一个获取所有特征并将它们拆分为单词和短语,第二个接收已拆分的单词和短语作为参数

def set_features_2(self, words, phrases):
self.vocabulary = set(words)
self.phrases = SortedSet(phrases)

def set_features(self, features):
phrases = [f for f in features if ' ' in f]
words = [f for f in features if f not in phrases]
self.set_features_2(words, phrases)

删除重复项的最简单方法是什么?它们都应该被称为“set_features”,但都接收一组不同的参数。我知道可以使用 args 和 kwargs,但对于这种微不足道的情况来说,这是一种过度杀伤力。

最佳答案

您本身无法重载函数参数,但可以使用关键字参数来模拟此行为。有点烦人的部分是您必须处理有效性检查(即用户没有同时通过 featureswordsphases)。例如:

def set_features(self, features = None, words = None, phrases = None):
if features:
if words or phrases:
raise ValueError('Either pass features or words and phrases')
else:
phrases = [f for f in features if ' ' in f]
words = [f for f in features if f not in phrases]

self.vocabulary = set(words)
self.phrases = SortedSet(phrases)

关于Python-使用不同的参数重载相同的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49415878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com