Python #ifdef

Grant Edwards invalid at invalid.invalid
Tue May 28 16:42:34 EDT 2013


On 2013-05-28, Carlos Nepomuceno <carlosnepomuceno at outlook.com> wrote:

> [...]
>> You're trying to make this a lot harder than it really is:
>>
>> if sys.version_info[0] == 3:
>> def original(n):
>> m = 0
>> for b in n.to_bytes(6, 'big'):
>> m = 256*m + b
>> return m
>> else:
>> def original(n):
>> <something else?>
>
> Haha! That's it!!!
>
> Just realized how funny this can be: ;)

Here's the important lesson from this thread:

Instead of asking "how do I write X in Python" where yoy've assumed X
is the solution to your problem, you're usually better off asking how
to solve the underlying problem in a Pythonic way.

IOW, instead of asking about a Python preprocessor (which you have
assumed is the solution to the problem because that's how you would do
it in C), ask about the actual problem (how to define a function
differently depending on Python version).

People on this list are very inventive and will expend a surprising
amount of time to figure out often too-clever ways to do X because you
asked how to do X -- even if doing X is a lousy way to solve your
actual problem...

When asking how do I solve a problem, it's OK to illustrate that
question with an example X of how you would solve it in C or Java or
Ruby or Perl or whatever, but remember

  1) Not everybody here knows C or Java or Ruby or Perl or whatever,
     and the person who _does_ know everyting there is to know about
     solving some particular underlying problem isn't going to go
     learn a new language so that they can understand your example and
     figure out what you're trying to accomplish.

  2) Programming languages differ. X may be the best way to solve the
     problem in one language, but it might be an awful way to do it in
     another language.

-- 
Grant Edwards               grant.b.edwards        Yow! I'm ANN LANDERS!!
                                  at               I can SHOPLIFT!!
                              gmail.com            



More information about the Python-list mailing list