[Ironpython-users] How to use __ getattr__ to the current module?

sepatan at sibmail.com sepatan at sibmail.com
Tue Sep 18 07:11:54 CEST 2012


Hello, Jeff Hardy ).
1)
It is a good reference. But the methods must be defined in advance (class
A). If I write ttt ('i') without defining it in the class A, I get an
error. Use __getattr__ in class A does not work.

class A(object):
    def salutation(self, accusative):
        # code

    def farewell(self, greeting, accusative):
        # code
......................

salutation("world")
farewell("goodbye", "world")
ttt('yy')
name 'ttt' is not defined.

2)
A good option would be:

import sys
class Foo(object):
    def __getattr__(self, t):
       print 'use __getattr__ - ', t
       return type(t, (object,), {})
    def funct1(self): pass
    def funct2(self): pass

sys.modules[__name__] = Foo()
ttt('yy')

name 'ttt' is not defined.
 __getattr__ not work (((.

> The short answer is that you can't, in any version of Python.
>
> The longer answers can be found at
> http://stackoverflow.com/questions/2447353/getattr-on-a-module.
>
> - Jeff
>
> On Mon, Sep 17, 2012 at 10:17 AM,  <sepatan at sibmail.com> wrote:
>> Hello, Vernon Cole.
>> Or you probably do not understand the question, or I did not properly
>> posed the question.
>> I know I can define a function (ttt). And if I'm interested in __
>> getattr__, so in this case it can not be determined, or its name and
>> parameters are defined at run time.
>> Thank you.
>>
>>> Dear Sir:
>>>    Sorry, your question does not seem to make sense.
>>> Your example appears to be a simple function call with one keyword
>>> argument. To use it, you simply define the optional arguments when you
>>> define the function.  See the documentation at:
>>> http://docs.python.org/tutorial/controlflow.html#more-on-defining-functions
>>>
>>>  __getattr__ is only used within classes to emulate methods which do
>>> not
>>> actually exist. That does not appear to be what you are wanting.
>>> --
>>> Vernon Cole
>>>
>>> On Mon, Sep 17, 2012 at 4:42 AM, <sepatan at sibmail.com> wrote:
>>>
>>>> Hello.
>>>> For example in the text of the module meets the command:
>>>> ttt(4, x = 7)
>>>> where and how to define __ getattr__ to handle it?
>>>> Thank you.
>>>>
>>>> _______________________________________________
>>>> Ironpython-users mailing list
>>>> Ironpython-users at python.org
>>>> http://mail.python.org/mailman/listinfo/ironpython-users
>>>>
>>>
>>
>>
>> _______________________________________________
>> Ironpython-users mailing list
>> Ironpython-users at python.org
>> http://mail.python.org/mailman/listinfo/ironpython-users
>



More information about the Ironpython-users mailing list