Home > Backend Development > Python Tutorial > Describe Python class properties

Describe Python class properties

coldplay.xixi
Release: 2021-01-08 14:13:54
forward
1836 people have browsed it

Describe Python class properties

Related free learning recommendations: python video tutorial

  • ## __getattr__ is the getattr magic function that is called when the class calls an attribute that does not exist. The value item it passes in is the non-existent value you are calling.

class User(object):
    def __init__(self, name, info):
        self.name = name
        self.info = info
ls = User("李四",{"gender":"male"})print(ls.info)运行结果:{'gender': 'male'}
Copy after login
If you want to get the male attribute, you need to use the

__getattr__ magic method.

class User(object):
    def __init__(self, name, info):
        self.name = name
        self.info = info    def __getattr__(self, item):
        return self.info[item]ls = User("李四",{"gender":"male"})print(ls.gender)运行结果:
male
Copy after login
    Attribute descriptor is a powerful general protocol. It is the calling principle of properties, methods, static methods, class methods
  • and super().
  • Attribute descriptor is a class that implements a specific protocol. As long as any one of the three methods __get__, __set__ and __delete__ is implemented, this class is a descriptor, which can implement multiple attributes. One way to use the same access logic is to create an instance as a class attribute of another class.
  • If an object defines both __get__ and __set__ methods, it is called a data descriptor.
  • Objects that only define the __get__ method are called non-data descriptors.
  • Use class methods to create descriptors • Define an IntField class as a descriptor class • Create an instance of the IntField class as an attribute of another User class
class User:
    def __init__(self, age):
        self.age = age    def get_age(self):
        return (str(self.age) + '岁')

    def set_age(self, age):
        if not isinstance(age, int):
            raise TypeError('Type Error')
        self.age = age

tt=User(55)tt.set_age(60)print(tt.get_age())运行结果:60岁
Copy after login
    Descriptor Search order • When it is a data descriptor,
  • get__ has a higher priority than __dict When it is a non-data descriptor,
    dict__ has a higher priority than __get
For more programming-related knowledge, please visit:

Programming Teaching! !

The above is the detailed content of Describe Python class properties. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:csdn.net
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template