이 글은 Python에서 hasattr(), getattr(), setattr()의 사용법을 소개합니다(코드 예제). 도움이 필요한 친구들이 참고할 수 있기를 바랍니다. 당신에게.
1.hasattr(object, name)
객체에 name 속성이 있는지 확인하면 True를 반환하고, 없으면 False를 반환합니다.
class MyClass(object): name = 'jack' age = '22' obj = MyClass() print(hasattr(obj, 'name')) # True print(hasattr(MyClass, 'age')) # True print(hasattr(obj, 'gender')) # False
2.getattr(object, name, [default])
은 객체의 속성이나 메소드를 가져오고, 사용 가능한 경우 이를 인쇄하는 데 사용됩니다. 기본값이 설정되어 있지 않으면 오류가 보고됩니다
class MyClass(object): name = 'jack' age = '22' def func(self): return 'hello world!!!' obj = MyClass() print(getattr(MyClass, 'name')) # jack print(getattr(obj, 'age')) # 22 print(getattr(MyClass, 'func')) # <function MyClass.func at 0x000001ACDE9A9AE8> print(getattr(obj, 'func')) # <bound method MyClass.func of <__main__.MyClass object at 0x000001D1505D01D0>> # print(getattr(MyClass, 'func1')) # 没有设置默认值,找不到方法会报错: AttributeError: type object 'MyClass' has no attribute 'func1' print(getattr(MyClass, 'func1', None)) # 设置了默认值None,找不到就会返回默认值: None print(getattr(MyClass, 'func')('self')) # hello world!!! print(getattr(obj, 'func')()) # hello world!!!
3. setattr(object, key, value)
는 객체의 속성 키에 값을 할당하는 데 사용됩니다. 값이 업데이트되지 않으면 먼저 속성 키를 생성한 다음 값을 할당하세요.
class MyClass(object): name = 'jack' age = '22' obj = MyClass() setattr(MyClass, 'name', 'tom') print(getattr(MyClass, 'name')) # tom setattr(obj, 'age', 28) print(getattr(obj, 'age')) # 28 setattr(MyClass, 'gender', 'male') print(getattr(MyClass, 'gender')) # male print(getattr(obj, 'gender')) # male setattr(obj, 'hobby', 'skating') print(obj, 'hobby') # <__main__.MyClass object at 0x00000209F5070630> hobby print(MyClass, 'hobby') # <class '__main__.MyClass'> hobby
세 가지 방법을 함께 사용하세요.
class MyClass(object): name = 'jack' age = '22' # 判断Myclass是否有gender属性,有则打印,没有则添加 def if_attr(gender='male'): if hasattr(MyClass, 'gender'): return getattr(MyClass, 'gender') return setattr(MyClass, 'gender', gender) if_attr(gender='female') print(getattr(MyClass, 'gender')) # female
위 내용은 Python의 hasattr(), getattr() 및 setattr() 사용법 소개(코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!