Такой вопрос возник
В методе класса вместо
netsnmp.snmpget
необходимо передать
netsnmp.self.snmp_metod
естественно возникает ошибка что у netsnmp нет атрибута self.snmp_metod
Как выйти из положения?
netsnmp.snmpget
netsnmp.self.snmp_metod
terabayt
что-то я не понял вопроса, куда передать, что передать…давайте пример
import netsnmp class snmp (): def __init__(self,Snmp_method): self.snmp_method=Snmp_method self.opros_raznimi_metodami() def opros_raznimi_metodami(self): var = netsnmp.Varbind('sysDescr.0') res = netsnmp.тут должно быть snmpget или snmpgetnext(var, Version = 1,DestHost = 'localhost', Community='public') print int(res[0]) kokoeto_oborudovanie = snmp(Snmp_method=snmpgetnext)
>>> class A: ... def __init__(self, x): ... self.x = x ... >>> a = A(1) >>> a.x 1 >>>
Rodegast
> В методе класса вместо…. естественно возникает ошибка что у netsnmp нет атрибута self.snmp_metodНу не знают классы ничего о своих экземплярах и всё тут. Если возникает потребность работать с объектом, то надо делать метод экземпляра, а не класса. Или передавать self как парамерт, но это уже извращение.
import netsnmp class snmp (): def __init__(self,Snmp_method, Oid): self.snmp_method=Snmp_method self.oid=Oid self.opros_raznimi_metodami() def opros_raznimi_metodami(self): var = netsnmp.Varbind(self.oid) res = netsnmp.тут должно быть snmpget или snmpgetnext(var, Version = 1,DestHost = 'localhost', Community='public') print int(res[0]) kokoeto_oborudovanie = snmp(Snmp_method=snmpgetnext, Oid='.1.3.6.1.4.1.99990.42.1.1.1.1.4.84.69.83.84')
import netsnmp class snmp (): def __init__(self,Snmp_method, Oid): self.snmp_method=Snmp_method self.oid=Oid if self.snmp_method = 'snmpget': self.metod_snmpget() if self.snmp_method = 'snmpgetnext': self.metod_snmpgetnext() def metod_snmpget(self): var = netsnmp.Varbind(self.oid) res = netsnmp.snmpget(var, Version = 1,DestHost = 'localhost', Community='public') print int(res[0]) def metod_snmpgetnext(self): var = netsnmp.Varbind(self.oid) res = netsnmp.snmpgetnext(var, Version = 1,DestHost = 'localhost', Community='public') print int(res[0]) kokoeto_oborudovanie = snmp(Snmp_method='snmpgetnext', Oid='.1.3.6.1.4.1.99990.42.1.1.1.1.4.84.69.83.84') eshe_kokoeto_oborudovanie = snmp(Snmp_method='snmpgetnext', Oid='.1.3.6.1.4.1.99990.42.1.1.1.1.4.84.69.83.84')
if self.snmp_method = 'snmpget':