局部变量

‘变量名’ in locals().keys()

全局变量

‘变量名’ in globals().keys()

类内判断是否有某个属性

hasattr(object, name)说明:判断对象object是否包含名为name的特性(hasattr是通过调用getattr(ojbect, name)是否抛出异常来实现的)。 参数object:对象。 参数name:特性名称。
>>> hasattr(list, ‘append’)

  1. class test():
  2. def __init__(self):
  3. self.a = 1
  4. def p(self):
  5. if hasattr(self,'v'):#类内用self代表本实例
  6. print('yes')
  7. else:
  8. print('no')
  9. def c(self):
  10. self.v = 2
  11. def d(self):
  12. print(locals().keys())#类内用locals只能检测到self实例,其他的属性值属于self的属性,所以locals检测不到
  13. T = test()
  14. hasattr(T,'v')#判断某类是否有某个属性
  15. #False
  16. T.p()
  17. #no
  18. T.c()
  19. T.p()
  20. #yes
  21. T.d()
  22. #dict_keys(['self'])
  23. hasattr(T,'v')
  24. #True