我正在为 twitter 创建一个包装器 Python API,例如:search_tweets(**kwargs)此 API 返回一个 Tweet 对象。推文类看起来像:class Tweet: def __init__(self, tweet, favorites, impressions, engagements, **kwargs): """ Create a new Tweet Object with field values """ self.impressions = impressions self.favorites = favorites self.tweet = tweet self.engagements = engagements vars(self).update(kwargs) def retweet(): """ Retweet this tweet """Tweet 对象将暴露给用户,因为 Tweet 对象将由 search_tweets API 返回,用户可以在此对象上调用 retweet 等方法,但我不希望用户显式创建此对象。我如何表示 Tweet 对象不应由用户创建,而只能对其进行操作?
2 回答
烙印99
TA贡献1829条经验 获得超13个赞
您可以将Tweet
类设为函数的本地类,例如:
def search_tweets(**kwargs): class Tweet: ...
因此,用户可以retweet()
对从search_tweets()
函数返回的对象调用和其他方法,但Tweet
由于缺乏人类可读的名称,无法轻松地手动创建对象。但是这种方法的缺点是Tweet
从其他 API 函数创建s也同样困难。
添加回答
举报
0/150
提交
取消