How to pass class instance to a method?

Drew r.drew.davis at gmail.com
Tue Nov 27 02:14:45 CET 2012


On Sunday, November 25, 2012 7:11:29 AM UTC-5, ALeX inSide wrote:
> How to "statically type" an instance of class that I pass to a method of other instance?
> 
> 
> 
> I suppose there shall be some kind of method decorator to treat an argument as an instance of class?
> 
> 
> 
> Generally it is needed so IDE (PyCharm) can auto-complete instance's methods and properties.
> 
> 
> 
> Pseudo-python-code example:
> 
> 
> 
> i = MyClass()
> 
> 
> 
> xxx(i, 1, 2);
> 
> 
> 
> ...
> 
> def xxx(self, MyClass myclass, number, foobar):
> 
>    myclass.classsmethod() #myclass - is an instance of known class

I'm not sure I understand exactly what you sre asking.    Python uses "duck typing".  As far as Python is concerned, you can pass in any class object and so long as it has the needed methods, it'll suffice ("If it walks like a duck and it quacks like a duck, then it is a duck.").   The down side to that is that if you hand an object as an argument and the method you pass doesn't behave like the expected method class would, then bad things may happen at run time.  It would be a bit of a hassle to check types to make sure things at least smell OK before execution goes possibly awry, but you are certainly free to write guard code that makes those sort of checks.

My reply here is a bit different from the other replies I see so far.  I worry that may mean I mis-understood your question.    Has this been at all helpful an answer?



More information about the Python-list mailing list