Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι

ΘΕΜΑ: Static Local variables in Python

Static Local variables in Python 11 Χρόνια 6 Μήνες πριν #1728

  • NGeo
  • Το Άβαταρ του/της NGeo
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 11
Καλησπέρα. Θέλω να γράψω ένα πρόγραμμα που να εξαντλεί όλη την μνήμη χρησιμοποιώντας static local μεταβλητές και να δειχτεί ότι δεν απαιτείται η κλήση των συναρτήσεων που περιέχουν τις static μεταβλητές για να εξαντληθεί ο χώρος μνήμης.
Αυτό στην C γινόταν εύκολα. Η python δεν υποστηρίζει ρητά static μεταβλητές αλλά μπορούν να εξομοιωθούν πχ:
def makefoo():
    x = 0
    def foo():
        nonlocal x
        x += 1
        return x
    return foo
foo = makefoo()
 
for i in range(0,3):
     print("static is ",foo())

η έξοδος είναι:
static is 1
static is 2
static is 3

Πώς μπορώ να το καταφέρω αυτό στην python? Ευχαριστώ προκαταβολικά! :cheer:
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Static Local variables in Python 11 Χρόνια 6 Μήνες πριν #1730

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 684
  • Ληφθείσες Ευχαριστίες 111
Δεν κατάλαβα τι θες να κάνεις. Αν μπορείς περιέγραψε το λίγο πιο αναλυτικά.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Static Local variables in Python 11 Χρόνια 6 Μήνες πριν #1731

  • NGeo
  • Το Άβαταρ του/της NGeo
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 11
Θέλω να εξαντλήσω την διαθέσιμη μνήμη stack ή heap με static local μεταβλητές στην python. Λογικά δεν το βλέπω να γίνεται γιατί εκτός του ότι δεν υποστηρίζει static η python πρέπει να γίνει και με κλίση συνάρτησης για να δημιουργηθεί η εξομοιωμένη μεταβλητή όπως στο παράδειγμα που πόσταρα πιο πάνω. Μήπως όμως μπορώ να το κάνω κάπως αλλιώς? Ίσως με c modules ή κάτι παρόμοιο?
Τελευταία διόρθωση: 11 Χρόνια 6 Μήνες πριν από NGeo.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Static Local variables in Python 11 Χρόνια 6 Μήνες πριν #1732

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 684
  • Ληφθείσες Ευχαριστίες 111
NGeo έγραψε:
Θέλω να εξαντλήσω την διαθέσιμη μνήμη stack ή heap με static local μεταβλητές στην python
Για ποιο σκοπό?

stackoverflow.com/questions/2670005/pyth...-variable-ram-useage
Τελευταία διόρθωση: 11 Χρόνια 6 Μήνες πριν από pmav99.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Static Local variables in Python 11 Χρόνια 6 Μήνες πριν #1733

  • NGeo
  • Το Άβαταρ του/της NGeo
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 11
Προσπαθώ να χαρακτηρίσω την python σαν γλώσσα προγραμματισμού. Δεν είμαι σίγουρος πάντως ότι γίνεται αυτό που ζητάω :o
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Static Local variables in Python 11 Χρόνια 6 Μήνες πριν #1734

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 684
  • Ληφθείσες Ευχαριστίες 111
Το να εξαντλήσεις τη μνήμη είναι πολύ εύκολο. Το μόνο που έχεις να κάνεις για να το πετύχεις αυτό είναι να συνεχίσείς να δημιουργείς αντικείμενα που δεν γίνονται garbage collected.
>>> i = 0
>>> d = {}
>>> while True:
...     d[i] = i
...     i += 1
... 
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
MemoryError
Η Python είναι πολύ διαφορετική από τις compiled γλώσσες (Java, C/C++). Μην προσπαθείς να γράψεις Java με σύνταξη Python. Γράψε απλά Python :)

Στην Python όταν χρειάζεσαι static variables συνήθως δεν θα το κάνεις έτσι. Πχ
stackoverflow.com/questions/460586/simul...c-variable-in-python

stackoverflow.com/questions/68645/static...-variables-in-python
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Static Local variables in Python 11 Χρόνια 6 Μήνες πριν #1735

  • NGeo
  • Το Άβαταρ του/της NGeo
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 11
Άρα οι static ζουν μέσα στις class μόνο. Άρα δεν γίνεται να εξαντλήσω την μνήμη με static variables όπως στην C. Θα ήταν το ίδιο με το να δημιουργώ απλά πολλές class.
Τελευταία διόρθωση: 11 Χρόνια 6 Μήνες πριν από NGeo.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Static Local variables in Python 11 Χρόνια 6 Μήνες πριν #1737

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 684
  • Ληφθείσες Ευχαριστίες 111
Κάποιος Θα μπορούσε να πει ότι δε γίνεται να εξαντλήσεις τη μνήμη χρησιμοποιώντας κάτι που δεν υπάρχει (static variables στην Python εν προκειμένω), ανεξαρτήτως αν υπάρχουν τεχνικές μέσω των οποίων μπορείς να έχεις παρόμοια χρηστικότητα. Κάποιος άλλος μπορεί όμως να διαφωνούσε με αυτό.

Εξαρτάται νομίζω από τη σκοπιά που το βλέπεις.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": NGeo
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.279 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου