6 Common Mistakes Python Developers Should Avoid

6 Common Mistakes Python Developers Should Avoid

Because Python has such user-friendly syntax, developers sometimes miss out on the scope of the diverse Python language. Here are 6 common mistakes that developers typically make.


1. Expressions that are incorrectly used as defaults for function arguments

A great thing that Python does is that it lets you specify that a function argument is option. It does this by creating a default value for it.

However, confusion can manifest when the default value is mutable. A mistake that happens regularly is to assume that the optional argument will be set to the specified expression every time the function is called.

This is done without supplying the optional argument with a value.

2. Error handling and Incorrect Indentation

A traceback is a very specific form of error in Python. Forgetting a colon at the end of a line, forgetting a parenthesis, or by mistake, when working on an if statement, adding one extra space, will lead to a syntax error.

Even if a seemingly small error, if this happens Python cannot understand how to read the program you created.

To create a block code, you need to indicate each line of the block. Each block code must be indicated by the exact same amount to work.

Python is unique compared to other languages, in that indentation has more of a role than making code look clean. Indentation is required for illuminating what block of code a statement belongs to.

Indentation is depended on by many characteristics. Something difficult to deal with is that some indentation errors are more problematic to spot than others.

An example: differentiating spaces and tabs in code, and what the error associated with it is. Python and the editor may see different things when the tabs are counted by a number of spaces.

You must use either all spaces or all tabs within the entire code block.

3. Variable binding

Python, with its late-binding behavior, creates confusion among developers on how Python binds its variables.

It binds its variables in closures or surrounding global scope. This leads to values of variables in closures looking up at the time the inner function is called upon.

4. Incorrectly using the __init__ method

A reserved method called init, it is a constructor and is utilized when python allocates memory to a class object that is new.

If you try to explicitly return a value from the init method, this will make it seem that the person using it is trying to diverge from the actual purpose.

5. Having a clashing name with Python Standard Library modules

Library modules that come with “out of the box” are plentiful in Python and is one of best features of it.

However, the result of this can be creating a name clash between one of the module names in the Python Standard Library and the name you created for on of your modules.

An example of this is naming a module email.py in your code. There then is the same name within the standard library module, creating a clashing of names.

The name clash leads to a multitude of different problems, including problems like importing another library which in turn tries to start importing the Python Standard Library version of a module, but instead starts importing your version of the same name. Yours will be imported instead of the one within the Python Standard Library.

This is a slippery slope as it will create even more problems for you.

It goes without saying, but make sure you use extra caution when naming. Do not use the same names as items within the Python Standard Library modules.

Always take the easier route of renaming the module within your package then trying to take the inefficient steps of requesting a name change by filing a Python Enhancement Proposal.

6. LEGB Rule

Local, Enclosing, Global, Built-in, if a user makes an assignment to a variable in a scope, Python automatically considers that variable to be local to that scope.

It shadows any similarly named variables in the outer scope. The most common time this is a mistake is when using lists.

A high-level programming language with dynamic semantics, Python is very attractive for Rapid Application Development. Avoid mistakes with these tips.

Your recently viewed posts:

    Contact Us

    We’d love to help & work with you

    When do you want to start ?

    Enter your email address to stay up to date with the latest news.
    Holler Box

    Exit pop up

    Sad to see you leaving early...

    From "Aha" to "Oh shit" we are sharing everything on our journey.
    Enter your email address to stay up to date with the latest news.
    Holler Box