Ποια είναι η διαφορά μεταξύ _ και __ στο python;


Απάντηση 1:

Θεωρητικά αυτά είναι απλά ονόματα μεταβλητών μεταβλητών. Κατά σύμβαση, χρησιμοποιείται μία μόνο υπογράμμιση ως μια μεταβλητή που δεν ενδιαφέρεται. Για παράδειγμα, εάν μια συνάρτηση επιστρέφει μια πλειάδα και σας ενδιαφέρει μόνο ένα στοιχείο, ένας τρόπος Pythonic να αγνοήσετε το άλλο είναι:

_, x = διασκέδαση ()

Σε ορισμένους ερμηνευτές _ και __ έχουν ιδιαίτερες έννοιες και αποθηκεύουν τιμές προηγούμενων αξιολογήσεων.

Για την εκμάθηση της επίσκεψης Python - https: //hackr.io/tutorials/learn ...


Απάντηση 2:

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

Διπλό οδηγός υπογράμμισης: αυτό εισάγει μια έννοια που ονομάζεται "μαγκλάνγκ". Αυτό βοηθά την ερμηνεία του python για να διακρίνει μεταξύ των ονομάτων των χαρακτηριστικών σε περίπτωση κληρονομίας (όταν δύο ιδιότητες έχουν το ίδιο όνομα σε super και sub class). αυτό επισυνάπτει το _Classname σε __manglingVariable και γίνεται __Classname__manglingVariable.

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

Μια μεταβλητή μετατόπιση μπορεί να προσπελαστεί εκτός της κατηγορίας πλευράς. Δείτε παρακάτω παράδειγμα.

class FirstClass:

!! def __add (αυτο):

!!!! εκτύπωση (self.num1 + self.num2)

! def sub (αυτο):

!!!! εκτύπωση (self.num1-self.num2)

!! def __init __ (μόνος, num1, num2):

!!!! self.num1 = num1

!!!! self.num2 = num2

f = Εισαγωγή πρώτης κατηγορίας (1,2) #

f._FirstClass__add () # 3

f.sub () # -1