Path: csiph.com!usenet.pasdenom.info!aioe.org!news.stack.nl!newsfeed.xs4all.nl!newsfeed6.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.003 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'expressions': 0.07; 'function,': 0.07; 'python': 0.09; 'called.': 0.09; 'url:github': 0.09; 'cc:addr:python-list': 0.10; 'def': 0.10; '(like': 0.15; 'lambda': 0.16; 'received:74.55.86': 0.16; 'received:74.55.86.74': 0.16; 'received:smtp.webfaction.com': 0.16; 'received:webfaction.com': 0.16; 'redefinition': 0.16; 'ubuntu.': 0.16; 'wrote:': 0.17; 'thanks,': 0.18; 'define': 0.20; 'cc:2**0': 0.23; 'script': 0.24; 'allows': 0.25; 'cc:addr:python.org': 0.25; 'header:In-Reply-To:1': 0.25; 'header:User-Agent:1': 0.26; 'am,': 0.27; 'skip:# 10': 0.27; 'functions.': 0.27; 'function': 0.30; 'print': 0.32; 'function.': 0.33; 'hi,': 0.33; 'there': 0.35; 'add': 0.36; 'but': 0.36; 'should': 0.36; 'data': 0.37; 'subject:: ': 0.38; 'interested.': 0.38; 'some': 0.38; 'received:192': 0.39; 'called': 0.39; 'little': 0.39; 'received:192.168': 0.40; 'here': 0.65; 'header:Reply-To:1': 0.68; 'reply-to:no real name:2**0': 0.72; 'p.s.:': 0.84; 'grew': 0.91 Date: Wed, 12 Sep 2012 06:32:50 -0700 From: Ken Seehart User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20120907 Thunderbird/15.0.1 MIME-Version: 1.0 To: Jabba Laci Subject: Re: avoid the redefinition of a function References: In-Reply-To: Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="------------ms020201040906030808080608" Cc: Python mailing list X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: ken@seehart.com List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 129 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1347456866 news.xs4all.nl 6923 [2001:888:2000:d::a6]:48750 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:28962 This is a cryptographically signed message in MIME format. --------------ms020201040906030808080608 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Use lambda expressions to define some constraints: gt =3D lambda x: lambda y: x>y eq =3D lambda x: lambda y: x=3D=3Dy constraints =3D [gt(2), eq(1)] data =3D [3,1] for i,c in enumerate(constraints): print c(data[i]) =20 =20 On 9/12/2012 5:56 AM, Jabba Laci wrote: > Hi, > > I have an installer script that contains lots of little functions. It > has an interactive menu and the corresponding function is called. Over > time it grew long and when I want to add a new function, I should give > a unique name to that function. However, Python allows the > redefinition of functions: > > #!/usr/bin/env python > > def step_1(): > print 1 > > def step_1(): > print 2 > > step_1() > > This will call the 2nd function. Now my functions are called step_ID > (like step_27(), step_28(), etc.). How to avoid the danger of > redefinition? Now, when I write a new function, I search for its name > to see if it's unique but there must be a better way. > > Thanks, > > Laszlo > P.S.: the script is here ( https://github.com/jabbalaci/jabbatron ) if > you are interested. It's made for Ubuntu. --------------ms020201040906030808080608 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIKQTCC BRowggQCoAMCAQICEG0Z6qcZT2ozIuYiMnqqcd4wDQYJKoZIhvcNAQEFBQAwga4xCzAJBgNV BAYTAlVTMQswCQYDVQQIEwJVVDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkxHjAcBgNVBAoT FVRoZSBVU0VSVFJVU1QgTmV0d29yazEhMB8GA1UECxMYaHR0cDovL3d3dy51c2VydHJ1c3Qu Y29tMTYwNAYDVQQDEy1VVE4tVVNFUkZpcnN0LUNsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQg RW1haWwwHhcNMTEwNDI4MDAwMDAwWhcNMjAwNTMwMTA0ODM4WjCBkzELMAkGA1UEBhMCR0Ix GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE ChMRQ09NT0RPIENBIExpbWl0ZWQxOTA3BgNVBAMTMENPTU9ETyBDbGllbnQgQXV0aGVudGlj YXRpb24gYW5kIFNlY3VyZSBFbWFpbCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC ggEBAJKEhFtLV5jUXi+LpOFAyKNTWF9mZfEyTvefMn1V0HhMVbdClOD5J3EHxcZppLkyxPFA GpDMJ1Zifxe1cWmu5SAb5MtjXmDKokH2auGj/7jfH0htZUOMKi4rYzh337EXrMLaggLW1DJq 1GdvIBOPXDX65VSAr9hxCh03CgJQU2yVHakQFLSZlVkSMf8JotJM3FLb3uJAAVtIaN3FSrTg 7SQfOq9xXwfjrL8UO7AlcWg99A/WF1hGFYE8aIuLgw9teiFX5jSw2zJ+40rhpVJyZCaRTqWS D//gsWD9Gm9oUZljjRqLpcxCm5t9ImPTqaD8zp6Q30QZ9FxbNboW86eb/8ECAwEAAaOCAUsw ggFHMB8GA1UdIwQYMBaAFImCZ33EnSZwAEu0UEh83j2uBG59MB0GA1UdDgQWBBR6E04AdFvG eGNkJ8Ev4qBbvHnFezAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADARBgNV HSAECjAIMAYGBFUdIAAwWAYDVR0fBFEwTzBNoEugSYZHaHR0cDovL2NybC51c2VydHJ1c3Qu Y29tL1VUTi1VU0VSRmlyc3QtQ2xpZW50QXV0aGVudGljYXRpb25hbmRFbWFpbC5jcmwwdAYI KwYBBQUHAQEEaDBmMD0GCCsGAQUFBzAChjFodHRwOi8vY3J0LnVzZXJ0cnVzdC5jb20vVVRO QWRkVHJ1c3RDbGllbnRfQ0EuY3J0MCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC51c2VydHJ1 c3QuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQCF1r54V1VtM39EUv5C1QaoAQOAivsNsv1Kv/av QUn1G1rF0q0bc24+6SZ85kyYwTAo38v7QjyhJT4KddbQPTmGZtGhm7VNm2+vKGwdr+XqdFqo 2rHA8XV6L566k3nK/uKRHlZ0sviN0+BDchvtj/1gOSBH+4uvOmVIPJg9pSW/ve9g4EnlFsjr P0OD8ODuDcHTzTNfm9C9YGqzO/761Mk6PB/tm/+bSTO+Qik5g+4zaS6CnUVNqGnagBsePdIa XXxHmaWbCG0SmYbWXVcHG6cwvktJRLiQfsrReTjrtDP6oDpdJlieYVUYtCHVmdXgQ0BCML7q peeU0rD+83X5f27nMIIFHzCCBAegAwIBAgIQQqqFtzzR+YSRjiorAIgRKDANBgkqhkiG9w0B AQUFADCBkzELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxOTA3BgNVBAMTMENP TU9ETyBDbGllbnQgQXV0aGVudGljYXRpb24gYW5kIFNlY3VyZSBFbWFpbCBDQTAeFw0xMTEy MTYwMDAwMDBaFw0xMjEyMTUyMzU5NTlaMCAxHjAcBgkqhkiG9w0BCQEWD2tlbkBzZWVoYXJ0 LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9SSPK9PaOjGSeyxXOq/Oor k9An+cVhjKAazxzme3MKQhM30dXKIKcuJ9yEBHq2erB6pvoLVuhd017umc6/tUSet9s2nMiq ktR5mpflka4m7B2SV9SfuqJVNg6XAXu1ewWwwqp8+aVc4CueFjmdAQlvWWkuaUFsqurtu/Xd fo3xUsmGr+xEykJudAYwUuGPQDiFa40xBdZmZW7aOBq42ismTnvjzCN+DyKKTTPy4EIq4ufx 6EB8wprorTKUpvIuf+m7XRoCEZLo6Q24iwT+z+4YRehEBFIbZefUA+WYGZS9CR9MvN/ocXhp 0u3MAFgnDs1h2Gb5Hpb+ricev2rXsI8CAwEAAaOCAd8wggHbMB8GA1UdIwQYMBaAFHoTTgB0 W8Z4Y2QnwS/ioFu8ecV7MB0GA1UdDgQWBBSzux6BDqkDFVrrY55CvmFBvl5j7jAOBgNVHQ8B Af8EBAMCBaAwDAYDVR0TAQH/BAIwADAgBgNVHSUEGTAXBggrBgEFBQcDBAYLKwYBBAGyMQED BQIwEQYJYIZIAYb4QgEBBAQDAgUgMEYGA1UdIAQ/MD0wOwYMKwYBBAGyMQECAQEBMCswKQYI KwYBBQUHAgEWHWh0dHBzOi8vc2VjdXJlLmNvbW9kby5uZXQvQ1BTMFcGA1UdHwRQME4wTKBK oEiGRmh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL0NPTU9ET0NsaWVudEF1dGhlbnRpY2F0aW9u YW5kU2VjdXJlRW1haWxDQS5jcmwwgYgGCCsGAQUFBwEBBHwwejBSBggrBgEFBQcwAoZGaHR0 cDovL2NydC5jb21vZG9jYS5jb20vQ09NT0RPQ2xpZW50QXV0aGVudGljYXRpb25hbmRTZWN1 cmVFbWFpbENBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2EuY29tMBoG A1UdEQQTMBGBD2tlbkBzZWVoYXJ0LmNvbTANBgkqhkiG9w0BAQUFAAOCAQEAMn8Nc2ARqJvi IBUnKaaaejWBvPWqDNHBUUbCoCFIRZ7OlaLeY1KYj8EcyVbAbCvPqOWiMhy9rJl/33pCElB7 7ukugmao/q6yMgjck6OnHbjiRU8FMZE4/0QsetB/7ma2JmsqqBq2LeoW9vn7vFrKrM8DklqJ eRu+qOlpvMKtUGwtsElqJxPwzsgEmsG+Sfb4HHeYw1dPaVLOebKsXFuPuA3ndIIX3qe4wAh9 0cxc8mPf9GuITxxJpW3btbRa1W0rFnfxjxc7KuLZa0Sfyip+RdOYVp7NAjjHErPuVNYQtT9B yD+OLPI7POKU7trlH6V3t6dwwHDh33MSBhpDn0cemDGCBBkwggQVAgEBMIGoMIGTMQswCQYD VQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3Jk MRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDE5MDcGA1UEAxMwQ09NT0RPIENsaWVudCBB dXRoZW50aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBAhBCqoW3PNH5hJGOKisAiBEoMAkG BSsOAwIaBQCgggJFMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8X DTEyMDkxMjEzMzI1MFowIwYJKoZIhvcNAQkEMRYEFOSGrgbFI5Grr5BUVMeBMJrcJSkNMGwG CSqGSIb3DQEJDzFfMF0wCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAO BggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgw gbkGCSsGAQQBgjcQBDGBqzCBqDCBkzELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIg TWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0 ZWQxOTA3BgNVBAMTMENPTU9ETyBDbGllbnQgQXV0aGVudGljYXRpb24gYW5kIFNlY3VyZSBF bWFpbCBDQQIQQqqFtzzR+YSRjiorAIgRKDCBuwYLKoZIhvcNAQkQAgsxgauggagwgZMxCzAJ BgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZv cmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMTkwNwYDVQQDEzBDT01PRE8gQ2xpZW50 IEF1dGhlbnRpY2F0aW9uIGFuZCBTZWN1cmUgRW1haWwgQ0ECEEKqhbc80fmEkY4qKwCIESgw DQYJKoZIhvcNAQEBBQAEggEAmk0lfwnLA/EaFlv0mozWm36zYjXEgA4uUMwRxq4TeyX5BrNe lfVYVC8SbHUebY1lErwYln4mh98tA9kdFJgzYw79M3gCZDiyrumlOV8TlJoEycch8H51gygz UD7J9MX/ih1zbXd8MJ05PlmtKEF47nuDZ9Uh1AhRfspiI5DBQIi8oQRikqzs5uY886HJHe9y JPJ1lkssNPEQUG5Y7Ygd9t6AdoZcg90NjrBBbJK2+c6wZJctAiec5aglh/zU3Hsa3ipkp5ZO 8/syiL+C9noDWh43PlLxbF3OVfHaf8qHPuM9mbvSYOT1f/BpIVz98z4TQKas2mLJ716mUgt7 LnESiAAAAAAAAA== --------------ms020201040906030808080608--