| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- class A:
- var = 132
- def __init__(self):
- self.var2 = 34
- def meth(self, i):
- return 42 + i
- a = A()
- print(hasattr(a, "var"))
- print(hasattr(a, "var2"))
- print(hasattr(a, "meth"))
- print(hasattr(a, "_none_such"))
- print(hasattr(list, "foo"))
- class C:
- def __getattr__(self, attr):
- if attr == "exists":
- return attr
- elif attr == "raise":
- raise Exception(123)
- raise AttributeError
- c = C()
- print(hasattr(c, "exists"))
- print(hasattr(c, "doesnt_exist"))
- # ensure that non-AttributeError exceptions propagate out of hasattr
- try:
- hasattr(c, "raise")
- except Exception as er:
- print(er)
- try:
- hasattr(1, b'123')
- except TypeError:
- print('TypeError')
- try:
- hasattr(1, 123)
- except TypeError:
- print('TypeError')
|