Access to variable from external imported module

Discussion in 'Python' started by GinTon, Nov 23, 2006.

  1. GinTon

    GinTon Guest

    How to access to a variable (that value is not returned) from a module
    imported?
    And the variable is set at the module-level.

    That module is external to my program, it's from another project so I
    wann't modifying it.
     
    GinTon, Nov 23, 2006
    #1
    1. Advertisements

  2. import module
    print module.variable

    (have you read the Python tutorial?)

    </F>
     
    Fredrik Lundh, Nov 23, 2006
    #2
    1. Advertisements

  3. GinTon

    GinTon Guest

    Sorry, I mean access to local variable from a method

    import module
    method(value)

    I would to access to values that are created locally in that method

    Fredrik Lundh ha escrito:
     
    GinTon, Nov 23, 2006
    #3
  4. GinTon

    robert Guest

    after the method has executed? usually the return value?
    or you want to get all local variables, then make a func/method

    def f(a=1):
    b=2
    c=3
    return locals() #X/Object(locals())


    --------


    d=module.f()
    print d['c'] # d.c





    Robert
     
    robert, Nov 23, 2006
    #4
  5. That's no access to a local variable of a method. It's a simple
    function call.
    Something with your interface seems horribly wrong.

    Regards,


    Björn
     
    Bjoern Schliessmann, Nov 23, 2006
    #5
  6. GinTon a écrit :
    One of the most surprising properties of local variables is that they
    are, well... local.
     
    Bruno Desthuilliers, Nov 23, 2006
    #6
  7. GinTon

    GinTon Guest

    Thanks Robert, the best solution is get all local variables, else is
    impossible access to them.

    robert ha escrito:
     
    GinTon, Nov 23, 2006
    #7
  8. GinTon

    jim-on-linux Guest

    GinTon,

    I think this is what you want.


    class Kdoi:
       def __init__(self) :    
           self.Fdo()

       def Fdo(self):

    searchterm = 'help'
    print searchterm #local

         self.searchterm = searchterm
         print self.searchterm #used inside the class

         Kdo.searchterm = searchterm #<<<<
         print Kdo.searchterm #used outside the class
    Kdomore()


       
    class Kdomore(Kdo):
    def __init__(self) :
    self.Fdomore()

    def Fdomore(self):
    searchterm = Kdo.searchterm # <<<<
    print searchterm



    jim-on-linux
    http://www.inqvista.com
     
    jim-on-linux, Nov 23, 2006
    #8
  9. if you don't want them to be local, why are you using local variables?

    (have you read the Python tutorial?)

    </F>
     
    Fredrik Lundh, Nov 24, 2006
    #9
  10. GinTon

    John Machin Guest

    Is that a typo?
    What is all this K and F stuff?
    It's not apparent what the print statements are for -- are they part of
    an attempt to debug your code?

    What gives you the idea that this is what the OP wants or needs?
     
    John Machin, Nov 24, 2006
    #10
  11. GinTon

    robert Guest

    For test purposes/ex post inspection you could also uncomment the line in:

    def f(a=1):
    b=2
    c=3
    #globals().update(locals())
    return a+b
    --

    then it is more easy and you can get it like:

    module.c


    You can also create a total stack trace dynamically with this trick function:

    def mktb():
    try: raise UserWarning
    except: return sys.exc_info()[2]

    def f(a=1):
    b=2
    c=3
    global ftb;ftb=mktb()
    return a+b
    ----

    and then fully inspect the total situation in the func (and all down the call history) ex post at any time with


    Which other programming language can do things like this?
    ( Unfortunately (legacy) Python has no possibility to (re-)continue execution from exceptions/traces other than by simple generators )

    Robert


     
    robert, Nov 24, 2006
    #11
  12. GinTon

    jim-on-linux Guest

    No, it's a style. life seems to be easier
    to me if one is consistent, all my classes begin
    with K.
    It's my style. life seems to be easier to me
    if one is consistent all my function begin with
    F.

    I started doing things like this when the only way
    to debug was to read each line of code and try to
    figgure out if it was the problem.
    They are my personal sign posts.
    print shows the results wherever a print statement
    turns up the results = 'help' .
    I didn't run the code, and it has it has a coding
    error but if removed, the results should be;

    searchterm = 'help'
    self.searchterm = 'help'
    Kdo.searchterm = 'help'

    Sound silly but many people have trouble with
    getting a variable from here to there in their
    code. This shows that it can be done
    If I remember right, he refrased his first
    question and asked a second one.
    Sometimes people don't take the time to write
    correctly, the questions that are really in their
    mind. So I guessed. If Im wrong, he will ignore
    it. If I'm right, he will use it.

    Also, I have found that other will latch on to the
    ideas presented in these email responses. And
    they will use them, even though the response was
    not exactly what the original emailer wanted.

    And, I sometimes I do use print statements to
    debug, I have used other ways but on linux, I
    prefer a print statement.

    jim-on-linux
    http://www.inqvista.com
     
    jim-on-linux, Nov 24, 2006
    #12
  13. GinTon

    jim-on-linux Guest

    Sorry, Kdoi should be Kod


    the line above should be Kdomore(), not class
    Kdomore() (For the technocrats)
    jim-on-linux
    http://www.inqvista.com
     
    jim-on-linux, Nov 24, 2006
    #13
  14. GinTon

    John Machin Guest

    and end with "i"?
    You left out a word; the correct way of phrasing that is: "All my
    function _are_ begin with F" :)

    This appears to be a variation on "Hungarian notation"; google that for
    opinions pro & con.

    In a certain vernacular, it would be called "an effed concept" :)
    When was that? Even years ago, there were slightly better ways. For
    example, my first boss' boss was an enthusiastic coder and debugger and
    also a workaholic. Colleagues who lived along the same railway line as
    he and were foolish enough not to hide behind a newspaper could have
    their morning or evening reverie disturbed by a cry of "Glad you're
    here! I'll hold the listing, you hold the dump!". I get the impression
    that debugging techniques have moved along a little bit since then. :)
    I noticed.
    No, the result would be
    help
    help
    help

    Plug in a text-to-speech module and a phone dialer and you're done ;-)
    With luck. Kindly consider another possibility: that you are wrong (or
    just marching to the beat of your own tambourine) and he (or she) is a
    newbie & will use it :)

    [snip]

    HTH,
    John
     
    John Machin, Nov 24, 2006
    #14
  15. GinTon

    jim-on-linux Guest

    Sorry again Kdoi should be Kdo
    (Haste makes waste.)
    jim-on-linux
    http://www.inqvista.com
     
    jim-on-linux, Nov 24, 2006
    #15
  16. GinTon

    jim-on-linux Guest

    No, for Non-Hungrian programmers it's "all-ah me"
    Functions gona begin witha F, not Func. anda
    "all-ah-me" classes gona begin witha K, not Klas.
    Anda only me gona Know the Fdiff cause me codea is
    not opena. Anda I finda that it savea me time
    causea I doa thisa way fora a longa time.

    Whena I gonna hava to changea maybe I willa.
    That was when bill gates just left Harvard,
    basic was brand new, and 4k of memory was
    installed free when you bought a computer,
    (TRS80), my first,. Assemble was the alternative
    to Basic and you had to backup on tape because
    floppies didn't exist. And, most people on this
    site wern't even a gleem in their fathers eye.
    Correct but when writing one must be clear.

    Would it be better for me to write, your question
    above was Is that a typo?

    Or is it better if I were to write, your
    question above, "Is that a typo?",
    is a legimate question, but not clear.

    So, to be clear one might write is "Kdoi"
    correct?.

    A clear response would be, it is not "Kdoi", it is
    "Kdo".

    But that's not correct either, it is Kdo.

    If one runs the code I don't expect the user to
    look for "help", I think we will see help and
    will THINK that the results are correct.

    THINK is also incorrect, it should be written.
    think, or should it?

    "Because he being of course judge of that tendency
    will make his opinions the rule of judgment, and
    approve or condemn the sentiments of others only
    as they shall square with or differ from his own…"
    Thomas Jefferson



    I enjoied this, but time is money,

    jim-on-linux
    http://www.inqvista.com
     
    jim-on-linux, Nov 24, 2006
    #16
  17. Pardon? I'd learned BASIC back around 1972, in the 9th grade, using
    an ASR-33 with dial-up to some company's Honeywell-Bull system.

    BASIC is one of the ancients in languages, predating Pascal and C.

    Just because Gates managed to scrabble together a BASIC interpreter
    for the MITS Altair, and then had it picked up by other makers of
    8080/Z-80 based "microcomputers" doesn't make it "brand new".
    (Personally, I suspect he hasn't done any programming ever since that
    day, and is probably still trying to find some way to sue Kemeny&Kurtz
    (sp?s) over their own creation)
    --
    Wulfraed Dennis Lee Bieber KD6MOG

    HTTP://wlfraed.home.netcom.com/
    (Bestiaria Support Staff: )
    HTTP://www.bestiaria.com/
     
    Dennis Lee Bieber, Nov 24, 2006
    #17
  18. [jaw drops]

    Given the number of typos your posts include, the mock accent, the
    nonsensical sentences, the annoying hard-to-read coding conventions, and
    the sheer number of grammatical errors in your sentences, do you have any
    idea of the irony of that statement?

    No, I imagine you don't.

    Oh, and don't flatter yourself that you're the Old Man of Programming,
    compared to all the young whipper snappers on this list who, quote,
    "wern't even a gleem in their fathers eye". Many of us have been around
    quite a while, some of us even remember that there was a computer market
    before Bill Gates went dumpster-diving for source-code for a BASIC
    interpreter, and even if we weren't, there is nothing to be proud of using
    1970s programming style in 2000s programming languages.
     
    Steven D'Aprano, Nov 24, 2006
    #18
  19. GinTon

    jim-on-linux Guest

    The TRS-80 I bought came with both Basic and
    Assembly Language teaching guides, and that was
    it. To make the machine work one had to program.
    I didn't mean to imply that Bill Gates developed
    it. It's well known that MS borrowed stuff when
    they needed to from where ever the could get it.
    That's business.

    I'm not an MS fan but Bill Gates was the one who
    gave away a very cheep, borrowed but improved,
    copy of DOS to computer sellers. These copies
    could also be copied to floppies (8 inch). So,
    DOS 3.3 was used by computer sellers, to install
    DOS on the buyers machine, (intel 286) free.

    On the other hand, IBM sold the same package for
    $50.00.

    I got the free copy of MS 3.3 with my 286.

    After that, Windows 3.0 cost me $25.00,
    Windows 3.1 cost me $30.00,
    DOS upgrade from3.3 to 6.22 cost
    me $55.00.
    Since then I purchased Win 95, $100.00
    and Win 98. $125.00.
    And, all for testing software that I produced for
    people that use that stuff.

    Bill Gates probably can't program any software to
    write "Hello World" on any screen, but I'll bet
    he knows how to fill out a deposit ticket.

    I think Bill Gates recognize early that the money
    is in the marketing of the product, not the
    programming of it. How else can you explain the
    success of Windows, like it or not?

    jim-on-linux
    http://www.inqvista.com
     
    jim-on-linux, Nov 25, 2006
    #19
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.