关于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/")
如果我不将任何内容传递给
__init__
,这似乎很愚蠢。我想知道像requests这样的Python包如何实现以下语法。requests.get('https://api.github.com/user')
不这样做...
requests().get('https://api.github.com/user')
为什么,
requests
软件包有什么不同? 最佳答案
请求定义了一些额外的方法,这些方法在幕后创建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)
关于python - 为什么我不能在Python中创建这样的对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25340910/