Sök…


Initialiseringar av ordbok

Föredrar dict.get metoden om du inte är säker på om nyckeln finns. Det låter dig returnera ett standardvärde om nyckeln inte hittas. Den traditionella metoden dict[key] skulle höja ett undantag från KeyError .

Snarare än att göra

def add_student():
    try:
        students['count'] += 1
    except KeyError:
        students['count'] = 1

Do

def add_student():
        students['count'] = students.get('count', 0) + 1

Växla variabler

För att ändra värdet på två variabler kan du använda uppsamling av tupel.

x = True 
y = False 
x, y = y, x 
x
# False 
y
# True

Använd sanningsvärdetestning

Python kommer implicit att konvertera alla objekt till ett booleskt värde för testning, så använd det där det är möjligt.

# Good examples, using implicit truth testing
if attr:
    # do something

if not attr:
    # do something

# Bad examples, using specific types
if attr == 1:
    # do something

if attr == True:
    # do something

if attr != '':
    # do something

# If you are looking to specifically check for None, use 'is' or 'is not'
if attr is None:
    # do something

Detta ger generellt mer läsbar kod och är vanligtvis mycket säkrare när man hanterar oväntade typer.

Klicka här för en lista över vad som kommer att utvärderas till False .

Testa för "__main__" för att undvika oväntat körning av kod

Det är god praxis att testa det anropande programmets __name__ variabel innan du kör din kod.

import sys

def main():
    # Your code starts here

    # Don't forget to provide a return code
    return 0

if __name__ == "__main__":
    sys.exit(main())

Att använda detta mönster säkerställer att din kod endast körs när du förväntar dig att den ska vara; till exempel när du kör din fil uttryckligen:

python my_program.py

Fördelen kommer dock om du bestämmer dig för att import din fil i ett annat program (till exempel om du skriver den som en del av ett bibliotek). Du kan sedan import din fil och __main__ fällan säkerställer att ingen kod körs oväntat:

# A new program file
import my_program        # main() is not run

# But you can run main() explicitly if you really want it to run:
my_program.main()


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow