Это не очень хорошая идея, чтобы проверить или запустить c код, в 99 случаях из 100 есть лучший способ сделать это. В этом случае, если у вас нет какой-либо другой причины, которая действительно должна использовать eval и exe c, вы можете добиться того, что вы пытаетесь с помощью dict. он может содержать клавишу («имя»), используемую для ссылки или поиска вашего значения довольно безопасно.
class MyClass:
def __init__(self):
self.my_counts = {
'rhce': 0,
'rhcsa': 0
}
def add_cert_user(self, userid, args):
print("start of function", self.my_counts)
for cert in args:
if cert in self.my_counts:
self.my_counts[cert] += 1
print("end of function", self.my_counts)
me = MyClass()
args = ['rhce','rhcsa']
me.add_cert_user("test", args)
me.add_cert_user("test", args)
me.add_cert_user("test", args)
ВЫХОД
start of function {'rhce': 0, 'rhcsa': 0}
end of function {'rhce': 1, 'rhcsa': 1}
start of function {'rhce': 1, 'rhcsa': 1}
end of function {'rhce': 2, 'rhcsa': 2}
start of function {'rhce': 2, 'rhcsa': 2}
end of function {'rhce': 3, 'rhcsa': 3}