gpt4 book ai didi

python - 阻止用户在Python中创建某些类的对象

转载 作者:行者123 更新时间:2023-12-01 01:28:36 28 4
gpt4 key购买 nike

我正在为 twitter 创建一个包装器 Python API,

例如:

search_tweets(**kwargs)

此 API 返回一个 Tweet 对象。 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 对象不应由用户创建,而只能对其进行操作?

最佳答案

您可以将 Tweet 类设置为函数本地,例如:

def search_tweets(**kwargs):
class Tweet:
...

因此,用户可以对 search_tweets() 函数返回的对象调用 retweet() 和其他方法,但无法轻松创建 Tweet由于缺乏人类可读的名称,手动对象。但这种方法的缺点是从其他 API 函数创建 Tweet 同样困难。

关于python - 阻止用户在Python中创建某些类的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53116255/

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