• Use of statement 'global' in scripts.

    From Popov, Dmitry Yu@21:1/5 to All on Wed May 8 01:32:32 2024
    Dear Sirs.

    The statement 'global', indicating variables living in the global scope, is very suitable to be used in modules. I'm wondering whether in scripts, running at the top-level invocation of the interpreter, statement 'global' is used exactly the same way as
    in modules? If there are any differences, I would really appreciate any comments on this.

    Regards,
    Dmitry Popov

    Lemont, IL
    USA

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Greg Ewing@21:1/5 to Dmitry Yu on Wed May 8 20:56:00 2024
    On 8/05/24 1:32 pm, Popov, Dmitry Yu wrote:
    The statement 'global', indicating variables living in the global scope, is very suitable to be used in modules. I'm wondering whether in scripts, running at the top-level invocation of the interpreter, statement 'global' is used exactly the same way
    as in modules?

    The 'global' statement declares a name to be module-level, so there's no
    reason to use it at the top level of either a script or a module, since everything there is module-level anyway.

    You only need it if you want to assign to a module-level name from
    within a function, e.g.

    spam = 17

    def f():
    global spam
    spam = 42

    f()
    # spam is now 42

    A script is a module, so everything that applies to modules also
    applies to scripts.

    --
    Greg

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Popov, Dmitry Yu@21:1/5 to All on Wed May 8 18:52:57 2024
    VGhhbmsgeW91IQ0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCkZyb206IFB5dGhv bi1saXN0IDxweXRob24tbGlzdC1ib3VuY2VzK2Rwb3Bvdj1hbmwuZ292QHB5dGhvbi5vcmc+IG9u IGJlaGFsZiBvZiBHcmVnIEV3aW5nIHZpYSBQeXRob24tbGlzdCA8cHl0aG9uLWxpc3RAcHl0aG9u Lm9yZz4NClNlbnQ6IFdlZG5lc2RheSwgTWF5IDgsIDIwMjQgMzo1NiBBTQ0KVG86IHB5dGhvbi1s aXN0QHB5dGhvbi5vcmcgPHB5dGhvbi1saXN0QHB5dGhvbi5vcmc+DQpTdWJqZWN0OiBSZTogVXNl IG9mIHN0YXRlbWVudCAnZ2xvYmFsJyBpbiBzY3JpcHRzLg0KDQpPbiA4LzA1LzI0IDE64oCKMzIg cG0sIFBvcG92LCBEbWl0cnkgWXUgd3JvdGU6ID4gVGhlIHN0YXRlbWVudCAnZ2xvYmFsJywgaW5k aWNhdGluZyB2YXJpYWJsZXMgbGl2aW5nIGluIHRoZSBnbG9iYWwgc2NvcGUsIGlzIHZlcnkgc3Vp dGFibGUgdG8gYmUgdXNlZCBpbiBtb2R1bGVzLiBJJ20gd29uZGVyaW5nIHdoZXRoZXIgaW4gc2Ny aXB0cywgcnVubmluZyBhdCB0aGUgdG9wLWxldmVsIGludm9jYXRpb24gb2YgdGhlIGludGVycHJl dGVyLA0KWmpRY21RUllGcGZwdEJhbm5lclN0YXJ0DQpUaGlzIE1lc3NhZ2UgSXMgRnJvbSBhbiBF eHRlcm5hbCBTZW5kZXINClRoaXMgbWVzc2FnZSBjYW1lIGZyb20gb3V0c2lkZSB5b3VyIG9yZ2Fu aXphdGlvbi4NCg0KWmpRY21RUllGcGZwdEJhbm5lckVuZA0KDQpPbiA4LzA1LzI0IDE6MzIgcG0s IFBvcG92LCBEbWl0cnkgWXUgd3JvdGU6DQo+IFRoZSBzdGF0ZW1lbnQgJ2dsb2JhbCcsIGluZGlj YXRpbmcgdmFyaWFibGVzIGxpdmluZyBpbiB0aGUgZ2xvYmFsIHNjb3BlLCBpcyB2ZXJ5IHN1aXRh YmxlIHRvIGJlIHVzZWQgaW4gbW9kdWxlcy4gSSdtIHdvbmRlcmluZyB3aGV0aGVyIGluIHNjcmlw dHMsIHJ1bm5pbmcgYXQgdGhlIHRvcC1sZXZlbCBpbnZvY2F0aW9uIG9mIHRoZSBpbnRlcnByZXRl ciwgc3RhdGVtZW50ICdnbG9iYWwnIGlzIHVzZWQgZXhhY3RseSB0aGUgc2FtZSB3YXkgYXMgaW4g bW9kdWxlcz8NCg0KVGhlICdnbG9iYWwnIHN0YXRlbWVudCBkZWNsYXJlcyBhIG5hbWUgdG8gYmUg bW9kdWxlLWxldmVsLCBzbyB0aGVyZSdzIG5vDQpyZWFzb24gdG8gdXNlIGl0IGF0IHRoZSB0b3Ag bGV2ZWwgb2YgZWl0aGVyIGEgc2NyaXB0IG9yIGEgbW9kdWxlLCBzaW5jZQ0KZXZlcnl0aGluZyB0 aGVyZSBpcyBtb2R1bGUtbGV2ZWwgYW55d2F5Lg0KDQpZb3Ugb25seSBuZWVkIGl0IGlmIHlvdSB3 YW50IHRvIGFzc2lnbiB0byBhIG1vZHVsZS1sZXZlbCBuYW1lIGZyb20NCndpdGhpbiBhIGZ1bmN0 aW9uLCBlLmcuDQoNCnNwYW0gPSAxNw0KDQpkZWYgZigpOg0KICAgZ2xvYmFsIHNwYW0NCiAgIHNw YW0gPSA0Mg0KDQpmKCkNCiMgc3BhbSBpcyBub3cgNDINCg0KQSBzY3JpcHQgaXMgYSBtb2R1bGUs IHNvIGV2ZXJ5dGhpbmcgdGhhdCBhcHBsaWVzIHRvIG1vZHVsZXMgYWxzbw0KYXBwbGllcyB0byBz Y3JpcHRzLg0KDQotLQ0KR3JlZw0KLS0NCmh0dHBzOi8vdXJsZGVmZW5zZS51cy92My9fX2h0dHBz Oi8vbWFpbC5weXRob24ub3JnL21haWxtYW4vbGlzdGluZm8vcHl0aG9uLWxpc3RfXzshIUdfdUNm c2NmN2VXUyFhaXJXQ0NTMVFlTEFoazBBZk4zVnhodVY5TVpreDgwMDAwWUJoczVWamY4OUsyV1pQ amhDVWtYdDljdWxGendsWDFfT04wRzE3bHVrY1I3OS1rV0FzQSQNCg0K

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)