Έγκυρα και άκυρα ονόματα και συμβάσεις ονοματοδοσίας για αναγνωριστικά (π.χ. ονόματα μεταβλητών) στην Python

Επιχείρηση

Στην Python, τα αναγνωριστικά (ονόματα μεταβλητών, συναρτήσεων, κλάσεων κ.λπ.) πρέπει να ορίζονται σύμφωνα με κανόνες. Ονόματα που δεν ακολουθούν τους κανόνες δεν μπορούν να χρησιμοποιηθούν ως αναγνωριστικά και θα οδηγήσουν σε σφάλμα.

Οι ακόλουθες πληροφορίες παρέχονται εδώ.

  • Χαρακτήρες που μπορούν και δεν μπορούν να χρησιμοποιηθούν σε αναγνωριστικά (ονόματα)
    • Χαρακτήρες ASCII
    • Χαρακτήρας Unicode
      • κανονικοποίηση (π.χ. στα μαθηματικά)
  • Ελέγξτε αν η συμβολοσειρά είναι έγκυρο αναγνωριστικό:isidentifier()
  • Λέξεις που δεν μπορούν να χρησιμοποιηθούν ως αναγνωριστικά (ονόματα) (δεσμευμένες λέξεις)
  • Λέξεις που δεν πρέπει να χρησιμοποιούνται ως αναγνωριστικά (ονόματα)
  • Συμβάσεις ονοματοδοσίας για το PEP8

Η ακόλουθη περιγραφή δίνεται στην Python 3 και μπορεί να είναι διαφορετική στην Python 2.

Χαρακτήρες που μπορούν και δεν μπορούν να χρησιμοποιηθούν σε αναγνωριστικά (ονόματα)

Υποδεικνύει χαρακτήρες που μπορούν και δεν μπορούν να χρησιμοποιηθούν ως αναγνωριστικά (ονόματα).

Επιπλέον, αν και υπάρχουν πολλά πράγματα για να γράψετε, βασικά το μόνο που πρέπει να θυμάστε είναι τα εξής.

  • Χρησιμοποιήστε κεφαλαία και πεζά γράμματα, αριθμούς και υπογράμμιση.
  • Το πρώτο (πρώτο) γράμμα δεν μπορεί να είναι αριθμός.

Χαρακτήρες ASCII

Οι χαρακτήρες ASCII που μπορούν να χρησιμοποιηθούν ως αναγνωριστικά (ονόματα) είναι κεφαλαία και πεζά αλφάβητα (A~Z,a~z), αριθμοί (0~9) και υπογράμμιση (_). Το αλφάβητο είναι ευαίσθητο στην πεζότητα.

AbcDef_123 = 100
print(AbcDef_123)
# 100

Δεν μπορούν να χρησιμοποιηθούν σύμβολα εκτός από υπογράμμιση.

# AbcDef-123 = 100
# SyntaxError: can't assign to operator

Επίσης, οι αριθμοί δεν μπορούν να χρησιμοποιηθούν στην αρχή (πρώτο γράμμα).

# 1_abc = 100
# SyntaxError: invalid token

Οι υποδιαστολές μπορούν επίσης να χρησιμοποιηθούν στην αρχή.

_abc = 100
print(_abc)
# 100

Ωστόσο, σημειώστε ότι η υπογράμμιση στην αρχή μπορεί να έχει ειδική σημασία.

Χαρακτήρας Unicode

Από την Python 3, μπορούν επίσης να χρησιμοποιηθούν χαρακτήρες Unicode.

変数1 = 100
print(変数1)
# 100

Δεν μπορούν να χρησιμοποιηθούν όλοι οι χαρακτήρες Unicode και, ανάλογα με την κατηγορία Unicode, ορισμένοι δεν μπορούν να χρησιμοποιηθούν. Για παράδειγμα, δεν μπορούν να χρησιμοποιηθούν σύμβολα όπως τα σημεία στίξης και τα εικονογράμματα.

# 変数。 = 100
# SyntaxError: invalid character in identifier

# ☺ = 100
# SyntaxError: invalid character in identifier

Ανατρέξτε στην επίσημη τεκμηρίωση για τους κωδικούς κατηγορίας Unicode που μπορούν να χρησιμοποιηθούν.

Σε πολλές περιπτώσεις, δεν υπάρχει κανένα πλεονέκτημα στη χρήση κινεζικών χαρακτήρων κ.λπ., απλώς και μόνο επειδή μπορούν επίσης να χρησιμοποιηθούν χαρακτήρες Unicode (χωρίς σφάλματα).

κανονικοποίηση (π.χ. στα μαθηματικά)

Οι χαρακτήρες Unicode μετατρέπονται στην κανονικοποιημένη μορφή NFKC για ερμηνεία. Για παράδειγμα, τα αλφάβητα πλήρους πλάτους μετατρέπονται σε αλφάβητα μισού πλάτους (χαρακτήρες ASCII).

Σημειώστε ότι ακόμη και αν ο πηγαίος κώδικας εμφανίζει διαφορετική απεικόνιση, θεωρείται το ίδιο αντικείμενο και θα αντικατασταθεί.

ABC = 100
ABC = -100

print(ABC)
# -100

print(ABC)
# -100

print(ABC is ABC)
# True

Ελέγξτε αν η συμβολοσειρά είναι έγκυρο αναγνωριστικό: isidentifier()

Το αν ένα αλφαριθμητικό είναι έγκυρο ή όχι ως αναγνωριστικό μπορεί να ελεγχθεί με τη μέθοδο isidentifier().

Επιστρέφει true αν είναι έγκυρο ως αναγνωριστικό και false αν είναι άκυρο.

print('AbcDef_123'.isidentifier())
# True

print('AbcDef-123'.isidentifier())
# False

print('変数1'.isidentifier())
# True

print('☺'.isidentifier())
# False

Λέξεις που δεν μπορούν να χρησιμοποιηθούν ως αναγνωριστικά (ονόματα) (δεσμευμένες λέξεις)

Υπάρχουν ορισμένες λέξεις (δεσμευμένες λέξεις) που δεν μπορούν να χρησιμοποιηθούν ως αναγνωριστικά, ακόμη και αν είναι έγκυρες συμβολοσειρές ως αναγνωριστικά (ονόματα).

Δεδομένου ότι μια δεσμευμένη λέξη είναι ένα έγκυρο αλφαριθμητικό ως αναγνωριστικό, η isidentifier() επιστρέφει true, αλλά εμφανίζεται σφάλμα αν χρησιμοποιηθεί ως αναγνωριστικό.

print('None'.isidentifier())
# True

# None = 100
# SyntaxError: can't assign to keyword

Για να λάβετε μια λίστα δεσμευμένων λέξεων και για να ελέγξετε αν μια συμβολοσειρά είναι δεσμευμένη λέξη, χρησιμοποιήστε την ενότητα keyword της τυπικής βιβλιοθήκης.

Λέξεις που δεν πρέπει να χρησιμοποιούνται ως αναγνωριστικά (ονόματα)

Τα ονόματα των ενσωματωμένων συναρτήσεων της Python, για παράδειγμα, μπορούν να χρησιμοποιηθούν ως αναγνωριστικά, οπότε μπορείτε να τους αναθέσετε νέες τιμές ως μεταβλητές.

Για παράδειγμα, η len() είναι μια ενσωματωμένη συνάρτηση που επιστρέφει τον αριθμό των στοιχείων μιας λίστας ή τον αριθμό των χαρακτήρων μιας συμβολοσειράς.

print(len)
# <built-in function len>

print(len('abc'))
# 3

Εάν εκχωρήσετε μια νέα τιμή σε αυτό το όνομα len, η αρχική συνάρτηση θα αντικατασταθεί και θα καταστεί άχρηστη. Σημειώστε ότι δεν θα εκτυπωθεί κανένα σφάλμα ή προειδοποίηση όταν εκχωρείτε μια νέα τιμή.

print(len('abc'))
# 3

len = 100
print(len)
# 100

# print(len('abc'))
# TypeError: 'int' object is not callable

Ένα άλλο συνηθισμένο λάθος είναι η χρήση της list = [0, 1, 2], η οποία καθιστά αδύνατη τη χρήση της list(). Προσοχή.

Συμβάσεις ονοματοδοσίας για το PEP8

PEP σημαίνει Python Enhancement Proposal, ένα έγγραφο που περιγράφει νέα χαρακτηριστικά και άλλες πτυχές της Python.

PEP stands for Python Enhancement Proposal. A PEP is a design document providing information to the Python community, or describing a new feature for Python or its processes or environment.
PEP 1 — PEP Purpose and Guidelines | Python.org

Το PEP8 είναι το όγδοο και περιγράφει τον «Style Guide for Python Code», δηλαδή τον οδηγό στυλ για την Python.

Αναφέρονται επίσης οι συμβάσεις ονοματοδοσίας.

Ανατρέξτε στον παραπάνω σύνδεσμο για περισσότερες λεπτομέρειες, αλλά για παράδειγμα, συνιστάται ο ακόλουθος τρόπος γραφής.

  • Ενότητα
    • lowercase_underscore
    • Πεζά + υπογράμμιση
  • Πακέτο
    • lowercase
    • όλα τα πεζά γράμματα
  • Κλάσεις, εξαιρέσεις
    • CapitalizedWords(CamelCase)
    • Να γράφετε με κεφαλαίο το πρώτο γράμμα μιας λέξης, χωρίς υπογράμμιση.
  • Συναρτήσεις, μεταβλητές και μέθοδοι
    • lowercase_underscore
    • Πεζά + υπογράμμιση
  • σταθερή
    • ALL_CAPS
    • Με κεφαλαία γράμματα + υπογράμμιση

Ωστόσο, εάν ο οργανισμός σας δεν έχει τις δικές του συμβάσεις ονοματοδοσίας, συνιστάται να ακολουθήσετε την PEP8.

Copied title and URL