How to pass class instance to a method?
Steven D'Aprano
steve+comp.lang.python at pearwood.info
Sun Nov 25 07:37:35 EST 2012
On Sun, 25 Nov 2012 04:11:29 -0800, ALeX inSide wrote:
> How to "statically type" an instance of class that I pass to a method of
> other instance?
Please explain what you mean by this.
What do you think "statically type" means?
> I suppose there shall be some kind of method decorator to treat an
> argument as an instance of class?
Python does not allow you to lie about the type of an argument. All
objects are strongly typed. If an object is a Spam instance, it is a Spam
instance, you can't pretend that it is a Cheese instance.[1]
> 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 do not understand what you are saying here. Please try to explain more
carefully.
[1] You cannot lie about the type of an instance, but sometimes you can
actually change its type. Use this feature with care, since it rarely is
useful.
--
Steven
More information about the Python-list
mailing list