Require child of abstract class to not override method [duplicate] - python

This question already has answers here:
Making functions non override-able
(6 answers)
Prevent function overriding in Python [duplicate]
(3 answers)
How to prevent a function from being overridden in Python [duplicate]
(4 answers)
Closed 3 years ago.
With python abstract classes, is there a way to require that a class instance does not override a particular method?
Using the #abstractmethod decorator on a method requires the child class to define the method. Skipping the #abstractmethod decorator allows the child to skip defining the method and "silently inherent" the abstract method. What I'd like is something like a #onlyabstractmethod to decorate a method that I want to ensure the child does not override.

Related

What is meaning of super(ClassName,self).__init__() in python [duplicate]

This question already has answers here:
Understanding Python super() with __init__() methods [duplicate]
(7 answers)
Closed 11 months ago.
Here is the screenshot of our code
This a constructor for webdriver.Chrome
Please go and see in your webdriver.Chrome class we have constructor called __init__(self) magic method,
Now whenever you create an object for the Booking Class it will automatically invoke the child class constructor and parent class constructor
Note: Here super is a keyword for the invoking parent class constructor
So that's why you're using super(Booking, self).init()

When to use keyword "self" in Python [duplicate]

This question already has answers here:
What is the purpose of the `self` parameter? Why is it needed?
(26 answers)
Closed 5 years ago.
How to use "self" keyword regarding variables? It seems that you can set a class variable inside of __init__ constructor by using "self" prefix???
self is just a name used as a convention to refer to the instance on which methods are bound. Bound methods are always called with the instance as first argument, and you can name that variable anything.
By using self in an instance method, we set instance variables and not class ones. Different programming languages provide mechanisms to access the instance some use implicit this objects, some implicitly call all methods on the instance, and Python explicitly uses passes the instance as the first variable.

What is the difference between Abstract Classes and Metaclasses in python? [duplicate]

This question already has answers here:
What are metaclasses in Python?
(25 answers)
Why use Abstract Base Classes in Python?
(6 answers)
Closed last month.
I read two articles about Metaclassing in python:
What is a metaclass in Python?
http://jakevdp.github.io/blog/2012/12/01/a-primer-on-python-metaclasses/
And I read about the ABC(abstract base classes) which is presented at:
https://docs.python.org/2/library/abc.html.
So I have to ask: What is the difference between a metaclass and abstract base classes (ABC)?
As I can understand I can use both to define class creation from metaclasses (metaclass).
For what purpose I would use an ABC or 'my own' metaclass?

Create my own string function python [duplicate]

This question already has answers here:
Can you monkey patch methods on core types in Python?
(15 answers)
Closed 8 years ago.
"this is my string".myfunction(argument)
This is very simple in javascript. With the keyword this i can access to my string directly. Is that possible with python?
You can inherit from str and define your own methods:
class myString(str):
def my_method(self, ...):
# ...
some_string = myString("StackOverflow")
print some_string.count("a") # method from string
print some_string.myMethod(...) # your defined method

what does someclass.__init__ thing do [duplicate]

This question already has answers here:
What does object's __init__() method do in python? [duplicate]
(3 answers)
Closed 9 years ago.
class subclass(superclass):
def __init__(self, arg1, arg2):
superclass.__init__(self, blah1, blah2)
What is the purpose of using superclass.__init__(self, blah1, blah2)?
I am a little confused regarding whether to use the last line or not while inheriting a superclass.
superclass.__init__(self,*args,**kwargs)
is essentially equivelent to
super(Myclass,self).__init__(*args,**kwargs)
that is it calls the supers constructor. but it skips the rest of the inheritance stack (I think super() bubbles or something... most of the time i use the first method)
**this is probably an over simplification

Categories

Resources