Python类&;类实例化显示了一种非常奇怪的行为
我目前正在为Snapchat广告编写API连接器。我编写了一个类。然而,在测试过程中,我看到了一个不寻常的行为。下面的代码说明了该行为。使用3.7版Python类&;类实例化显示了一种非常奇怪的行为,python,python-2.7,Python,Python 2.7,我目前正在为Snapchat广告编写API连接器。我编写了一个类。然而,在测试过程中,我看到了一个不寻常的行为。下面的代码说明了该行为。使用3.7版 import requests from requests_oauthlib import OAuth2Session import datetime as dt class SnapchatAPI(object): def __int__(self, client_id, client_secret, org_id):
import requests
from requests_oauthlib import OAuth2Session
import datetime as dt
class SnapchatAPI(object):
def __int__(self, client_id, client_secret, org_id):
self.client_id = client_id
self.client_secret = client_secret
self.org_id = org_id
例如,上面是类的声明。当我运行它并尝试在没有参数的情况下实例化它时。它仍然有效[不应该,但确实有效]。我不明白为什么SnapchatAPI()
工作时不会引发错误
extractor = SnapchatAPI()
然而,当我试图找出答案时,我回到了下面这样的简单类来检查行为
class Person(object):
def __init__(self, firstname, lastname, address):
self.firstname = firstname
self.lastname = lastname
self.address = address
当我尝试在没有参数的情况下实例化它时。这会引起一个错误。这正是我所期望的
john_doe = Person()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:\uuuu init\uuuuu()缺少3个必需的位置参数:“firstname”、“lastname”和“address”
不知道为什么 如果你发布的内容与你脚本中的内容完全一致,那就是一个简单的打字错误。您已经定义了
\uuuuu int\uuuu
而不是\uuuu init\uuuu
。当一个类没有被赋予\uuuuu init\uuuu()
方法时,我相信它继承了\uuuuuuu init\uuuuu
对象()。这不需要任何参数,因此它在没有明确定义\uuuu init\uuuu
方法的情况下工作。如果您发布的内容与脚本中的内容完全相同,那么这只是一个简单的输入错误。您已经定义了\uuuuu int\uuuu
而不是\uuuu init\uuuu
。当一个类没有被赋予\uuuuu init\uuuu()
方法时,我相信它继承了\uuuuuuu init\uuuuu
对象()。这不需要任何参数,因此它在没有明确定义\uuuuu init\uuuuuuu
方法的情况下工作。\uuuuuuu int\uuuuuu
不是您拼写\uuuuuuu init\uuuuuuuuu
的方式。谢谢您指出这一点。我修正了源代码中的输入错误。这个问题是因为打字错误。\uuuuu int\uuuu
不是你如何拼写\uuuu init\uuuu
。谢谢你指出这一点。我修正了源代码中的输入错误。问题是因为打字错误。
Traceback (most recent call last):
File "<pyshell>", line 1, in <module>
TypeError: __init__() missing 3 required positional arguments: 'firstname', 'lastname', and 'address'