我有一个Tweetanalyzer类,有一个数据框作为实例变量。
现在,我想创建一个write_to_csv函数,该函数可以使用熊猫to_csv函数的所有参数。
我这样做的原因是我不想打电话-> Tweetanalyzer.df.to_csv只是Tweetanalyzerobject.write_to_csv,但具有与to_csv相同的功能。
我想包装该函数可能是正确的方法,包括* args和** kwargs,但是我无法使其正常工作。
class TweetAnalyzer:
def __init__(self, tweets, df = pd.DataFrame({'A' : []})):
self.tweets = tweets
if df.empty:
self.df = self.tweets_to_dataframe(self.tweets)
else:
self.df = df
def write_to_csv(self):
self.df.to_csv()
因此,如果我调用object.write_to_csv(encoding =“ utf-8”),它将被解析为to_csv代码,并且该代码无需在我的函数write_to_csv中指定“ encoding”即可工作。
谢谢!
答案 0 :(得分:2)
是的,使用* args和** kwargs可能是正确的主意!像这样:
class TweetAnalyzer:
def __init__(self, tweets, df=pd.DataFrame({"A": []})):
self.tweets = tweets
if df.empty:
self.df = self.tweets_to_dataframe(self.tweets)
else:
self.df = df
def write_to_csv(self, *args, **kwargs):
self.df.to_csv(*args, **kwargs)
有关详细说明,请参见:What does ** (double star/asterisk) and * (star/asterisk) do for parameters?