Example tutorial on using python special class methods

零下一度
Release: 2017-05-23 14:53:02
Original
1795 people have browsed it

It’s time to talk about examples again. This time we are talking about example tutorials on the use of python special class methods. There are many.

1.__getitem__Specialized method
##

1 >>> map = {'name':'c小加'}
2 >>> map.__getitem__("name")
3 'c\xe5\xb0\x8f\xe5\x8a\xa0'
Copy after login

Just redirect to the dictionary and return the value of the dictionary
2.__setitem__Specialized method
##

 >>> map = {'name':'c小加'}
2 >>> map.__setitem__('monaker','队花')
3 >>> map
4 {'monaker': '\xe9\x98\x9f\xe8\x8a\xb1', 'name': 'c\xe5\xb0\x8f\xe5\x8a\xa0'}
Copy after login

map actual The above is a class that pretends to be a dictionary as much as possible, just like C Xiaojia, pretending to be the team star as much as possible, even though he is a male.

 >>> map['monaker'] = '队花'
 >>> map
{'monaker': '\xe9\x98\x9f\xe8\x8a\xb1', 'name': 'c\xe5\xb0\x8f\xe5\x8a\xa0'} 
这个看上去像个正常的字典语法,这行代码实际上暗自调用了map.__setitem__('monaker','队花')
Copy after login

Overriding the __setitem__ method in a class is strictly defined in the same form as the parent class method. The name of the parameter doesn't matter, just the number. At the same time, when calling the parent class directly, although there is no __setitem__, Python will walk along the parent class tree until it finds the class in which we are calling the method.
3 .__repr__ is a dedicated method that is called when repr(instance) is called. repr function is a built-in function that returns a string representation of an object. It can be used on any object, not just instances of classes. You have already responded to repr Pretty familiar even though you don't know it. In the interactive window, when you type just a variable name and then press ENTER, Python uses repr to display the value of the variable. Create a dictionary d with some data, and then use print repr(d) to take a look.

4.__cmp__ Called when comparing class instances. Generally, you can compare any two Python objects by using == Objects, not just class instances. There are some rules that define when built-in data types are considered equal. For example, dictionaries are equal if they have all the same keys and values. For class instances you can define __cmp__ method, write your own comparison logic, then you can use == to compare your classes, and Python will call your __cmp__ special method for you.
5.__len__ is called when len(instance) is called. len is a built-in function that returns the length of an object. It can be used for any object that is thought to have a deserving length. string len is its number of characters; len of a dictionary is the number of its keywords; len of a list or sequence is the number of elements. For class instances, define __len__ method, then write your own length calculation, then call len(instance), and Python will call your __len__ special method for you.
6.__delitem__ Called when del instance[key] is called, you may remember it as deleting a single item from the dictionary Element methods. When you use del on a class instance, Python calls the __delitem__ private method for you.

Private methods mean that any class can hold key-value pairs like a dictionary by defining a __setitem__ method. Any class can behave like a sequence by defining __getitem__ method. Any class that defines a __cmp__ method can be compared using ==. And if your class behaves like it has something like length, don't define GetLength method, instead define __len__ method and use len(instance).
【Related recommendations】

1.

In-depth understanding of the special function __len__(self) in python

2. Little knowledge that must be mastered--detailed explanation of Python len examples

3. Summary of the len() function in Python Usage examples

4. Python magic methods __getitem__, __setitem__, __delitem__, and __len__ are introduced respectively

The above is the detailed content of Example tutorial on using python special class methods. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
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