Python: リクエストモジュールを使用してAPIを使用しています。クラス。Python:クラス内でクラスBをインスタンス化するインスタンス化、<class A name>オブジェクトに属性<class B attribute>がありません
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私は属性のエラーを取得しています'オブジェクトには「投稿」の属性はありません
私はAPICから)(ログインする呼び出しを削除する場合:
sesh = apic.Ses()
私はそれだけで罰金self.headers(sesh.headers)出力します見ることができます:
- を{ 'Content-Type': 'application/json'}
これは私の構文が問題であるようです。
.Sessionは、要求のクラス(クラスB)
.postと.headersセッションクラスの関数です。
私の質問:
私はちょうどこれをしようとするべきではありませんどのように私はクラスB
の属性を呼び出すべきである、クラスのインスタンス化をクラスBのインスタンスを作成していますか? (私はこの方法でクラスを使ってスクリプトを整理しようとしていますが、それは必ずしも必要なものではありません)
'self = requests.Session()' 'self'に割り当てないでください。それは動作しません。 –
inherit( 'class Ses(requests.Session):')またはcompose( 'self.session = requests.Session()')です。後者はおそらくより簡単になります。 – jonrsharpe