Abstract hyper-class in Python

Source: Internet
Author: User

1 #-*-coding:utf-8-*-2 classSuper (object):3     4     defTest (self):5 self.action ()6 7 classSub (Super):8     9     defAction (self):Ten         Print "Sub Action" One          Aobj=Sub () -Obj.test ()

In the code, a function test is defined in Super class super. Called its own action function. But the action function is not defined in super.

Why is this?

----------------------------------

In this case, the superclass is sometimes called abstract superclass. This means that part of the behavior of a class is provided by a subclass. If the expected method is not defined in the subclass, an exception is thrown that does not have a variable name defined.

----------------------------------

That's why the output from the above code is

Sub action

-------------------------------------

To avoid the subclass forgetting to implement the action function, in the Super class, you can also add the action function and use Assert to prompt the user to overwrite the function.

The code is as follows:

class Super (object):         def Test (self):        self.action ()    def  Action (self):        assert False,  "action must be implemented! "

Of course, you can also use the throw exception method in super to implement this hint subclass to override the action function.

The code is as follows:

class Super (object):         def Test (self):        self.action ()    def  Action (self):        Raise Notimplementederror ("action must be implemented! ")

Abstract hyper-class in Python

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.