1
Python: 我正在使用請求模塊來處理API,我正在使用類。我得到一個屬性錯誤:Python:在類中實例化類B實例化<class A name>對象沒有屬性<class B屬性>
apic.py模塊:(A類)
import requests
import json
class Ses:
def __init__(self):
self = requests.Session()
self.headers = {'Content-Type': 'application/json'}
print(self.headers)
def login(self, cname, uname, pword):
res = self.post('https://api.dynect.net/REST/Session/', params = {'customer_name': cname, 'user_name': uname, 'password': pword})
self.headers.update({'Auth-Token': json.loads(res.text)['data']['token']})
print(json.loads(res.text)['msgs'][0]['INFO'], '\n')
return json.loads(res.text)
腳本:
import requests
import apic
sesh = apic.Ses()
print(sesh.login())
- AttributeError的:「的SES 'object has no attribute'post'
如果我刪除調用從APIC登錄():
sesh = apic.Ses()
我可以看到它打印self.headers(sesh.headers)就好了:
- { 'Content-Type':'application/json'}
所以看來我的語法是腳本是問題。
.Session是在請求一個類(類B)
.POST和.headers是在會話類的功能。
我的問題:
如果我實例化類B類一實例,B類
的我應該如何調用屬性如果我只是不嘗試呢? (我正在用這種方式來清理我的腳本,這不是我需要做的事情。)
'self = requests.Session()'永遠不會分配給'self'。這是行不通的。 –
或者繼承('class Ses(requests.Session):')或者compose('self.session = requests.Session()');後者可能會更容易。 – jonrsharpe