为什么我不能在Python中创建这样的对象?

为什么我不能在Python中创建这样的对象?,python,Python,关于python中对象的问题。我已经创建了以下对象 class http(object): def __init__(self): self._resource = None self._response = None @property def resource(self): return self._resource @resource.setter def resource(self, valu

关于python中对象的问题。我已经创建了以下对象

class http(object):
    def __init__(self):
         self._resource = None
         self._response = None

    @property
    def resource(self):
        return self._resource

    @resource.setter
    def resource(self, value):
        self._resource = "http://127.0.0.1:8000/%s" % value


     def get(self, resource=None):
        self.resource = resource
        self._response = requests.get(self.resource)
        return self._response
Init在这个阶段不需要任何东西,所以我希望我可以创建这样的对象

content = http.get("users/")
但它不允许我这样做,相反,我必须使用语法http()传递,但什么也不传递

content = http().get("users/")
如果我不把任何东西传递给
\uuuu init\uuuu
,这看起来很愚蠢。我想知道像这样的Python包是如何实现以下语法的

requests.get('https://api.github.com/user')
不这样做

requests().get('https://api.github.com/user')

为什么,
请求
包有什么不同?

请求定义了一些额外的方法,在幕后创建requests.request的实例。您可以对http类执行相同的操作

class http(object):
    def get(self, resource=None):
        self.resource = resource
        self._response = requests.get(self.resource)
        return self._response

def get(resource=None):
    temp_instance = http()
    return temp_instance.get(resource)

在使用构造函数之前,没有对象可以调用
get()
http()
@OllieFord,那么请求是如何实现的:将其作为一个类似乎没有多大意义;它有一个in属性和一个out属性,只要把它变成一个函数。@JornSharpe这只是一个例子来帮助说明这个问题,但我知道这没有什么意义。如果你查看源代码,你就会得到答案