2013-02-04 4 views
-1

Je veux changer la façon dont ma fonction lit le code, de sorte que je puisse importer une classe avec des variables managées plus faciles.Je veux lire dans un dictionnaire dans une fonction redéfinie

J'ai toutes les bibliothèques que je veux modifier déjà importées.

class http_request(object): 

    def __init__(self, website_address, valuedictionary): 
    self.website_address = website_address 
    self.valuedictionary = valuedictionary 

    def get(self): 
    return requests.get(website_address, params=valuedictionary) 

    def post(self): 
    return requests.post(website_address, data=valuedictionary) 

def postContext(self): 
    return requests.post(website_address, data=valuedictionary).context 
def getContext(self): 
    return requests.get(website_address, params=valuedictionary).context 

htay = http_request(web_add, payload) 

print str(htay.postContext) 

Je reçois cela comme ma réponse: "méthode liée http_request.get de < principal objet .http_request à 0x8735cec >>"

Toutes les idées?

Répondre

1

Je suppose que vous vouliez appeler la méthode:

print str(htay.postContext()) 
#       ^^ Need parenthesis to call a method 

Bien sûr, cela vous donnera probablement une erreur au sujet d'un global website_address not defined ou quelque chose de similaire parce que dans la méthode, vous devez obtenir l'instance attribut via self:

def postContext(self): 
    return requests.post(self.website_address, data=self.valuedictionary).context 

Et vous aurez besoin de faire le changement analogue dans vos autres méthodes aussi.

+0

Oui, mon mauvais. Cependant maintenant, quand cela arrive, je reçois "NameError: nom global 'adresse_web' n'est pas défini" – user1999976

+0

@ user1999976 - Je suis à quelques pas devant vous - vérifiez ma modification. – mgilson

+0

que vous êtes .. merci! – user1999976

Questions connexes