Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα σε ολους

ειμαι καινουριος στο forum οποτε....καλως σας βρηκα

τελος παντων εχω ενα προβληματάκι με Python

Η φιλοσοφία της Python kai to σκεπτικό της απο οτι εχω καταλάβει σε αυτους τους 7 μηνες που την μελετω ειναι η εξης

κανε τα παντα με ενα import ονομαβιβλιοθηκης

αλλα αυτο σε περιορίζει...και δεν σε αφήνει να μεγαλουργήσεις με αυτην  την γλωσσα

για αυτό θα ήθελα να ρωτήσω αν γινεται να κανεις οτι κανεις με τις βιβλιοθηκες αλλα....χωρις αυτες

πχ αν γινεται να ανοιξω ενα προγραμμα μεσω της python χωρις import os

πχ αν γινεται να στειλω ενα email μεσω της python χωρις το import SMTP

πχ αν γίνεται να εποικοινωνίσω σε εναν Server {αποστολη ενος HTTP request χωρις το import request / import httplib

τα παραδείγματα που αναφερω ειναι ενδεικτικα....

ευχαριστω πολυ :)

Δημοσ.

Η φιλοσοφία της Python kai to σκεπτικό της απο οτι εχω καταλάβει σε αυτους τους 7 μηνες που την μελετω ειναι η εξης

κανε τα παντα με ενα import ονομαβιβλιοθηκης

αλλα αυτο σε περιορίζει...και δεν σε αφήνει να μεγαλουργήσεις με αυτην  την γλωσσα

 

Δε αντιλαμβάνομαι τι σχέση έχει το πως κάνεις import μια βιβλιοθήκη με τη φιλοσοφία μιας γλώσσας και πως αυτό συνδέεται με τη «μεγαλουργία»...

για αυτό θα ήθελα να ρωτήσω αν γινεται να κανεις οτι κανεις με τις βιβλιοθηκες αλλα....χωρις αυτες

πχ αν γινεται να ανοιξω ενα προγραμμα μεσω της python χωρις import os

πχ αν γινεται να στειλω ενα email μεσω της python χωρις το import SMTP

πχ αν γίνεται να εποικοινωνίσω σε εναν Server {αποστολη ενος HTTP request χωρις το import request / import httplib

τα παραδείγματα που αναφερω ειναι ενδεικτικα....

ευχαριστω πολυ :)

Ένα από τα βασικά ατού της python είναι το λεγόμενο battery included. Δηλαδή έρχεται με πάρα πολλες βιβλιοθήκες στην βασική εγκατάσταση (οι βιβλιοθήκες της standard library). Τις βιβλιοθήκες αυτές τις έχεις ούτως ή άλλως εγκατεστημένες, οπότε δεν έχεις λόγο να μην τις χρησιμοποιήσεις. Μπορείς φυσικά να γράψεις κώδικα που να κάνει, ότι και αυτές, αλλά γιατί να ξανά ανακαλύψεις τον τροχό;

 

Για πράγματα που δεν καλύπτονται από την standard library μπορείς να χρησιμοποιήσεις είτε κώδικα άλλων (third party libraries), εισάγοντας φυσικά extra dependencies, είτε να γράψεις δικό σου.

Δημοσ.

πως για παραδειγμα θα υλοποιουσαμε την αποστολη ενος request σε εναν Server Χωρις καμια βιβλιοθηκη??? μπορεις να μου δωσεις ενα παρεδειγμα??

ευχαριστω :)

Δημοσ.

Έχω την εντύπωση ότι "από κάτω" η python υλοποιείται σε C, οπότε κάτι τέτοια που λες ίσως είναι γραμμένα σε C.

Επίσης έχω την εντύπωση ότι η python είναι open source, οπότε κατέβασα τον πηγαίο και δες ότι σ ενδιαφέρει.

Δημοσ.

Δεν έχω ασχοληθεί με το θέμα, αλλά φαντάζομαι ότι στον κώδικα της httplib θα βρεις μια πιθανή υλοποίηση.

 

http://hg.python.org/cpython/file/2.7/Lib/httplib.py

 

Και τον κώδικα της request μπορείς να κοιτάξεις αλλά υποθέτω ότι θα χρησιμοποιεί από πίσω την urllib. H httplib είναι πιο low-level, οπότε είναι πιο πιθανό να είναι κοντά σε αυτό που θες.

 

edit

Συνήθως, όταν δεν υπάρχει ιδιαίτερο performance hit, η standard library υλοποιείται σε Python. Τα core στοιχεία της γλώσσας (πχ dicts, lists κτλ), ναι, έχουν υλοποιηθεί σε C

Δημοσ.

Και εγω κάτι τέτιο είχα ακούσει.....οτι low level καταστασει υλοποιούνται σε αλλη γλώσσα {δεν ηξερα ειδικα C}

θα μελετησω τον κωδικα και αλλων βιβλιοθηκων

ευχαριστω και παλι :)

Δημοσ.

Υπάρχει η Python ως πρότυπο γλώσσας (language reference) και από εκεί και πέρα υπάρχουν και διάφορες υλοποιήσεις του προτύπου της γλώσσας.

 

Η CPython, που είναι και αυτή που χρησιμοποιείς, είναι υλοποιημένη σε C

Η Jython είναι υλοποιημένη σε Java

H IronPython είναι υλοποίηση για .NET (δεν ξέρω σε τι έχει γραφτεί).

H PyPy είναι υλοποιημένη σε μια γλώσσα που ονομάζεται RPython και η οποία είναι subset της Python.

 

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

 

Αυτό όσον αφορά την κυρίως γλώσσα, χωρίς δηλαδή τις βιβλιοθήκες της. Η standard library είναι σε μεγάλο βαθμό γραμμένη σε Python και μόνο κάποια κομμάτια της είναι σε C (μόνο όπου υπάρχει σημαντικό κέρδος στην ταχύτητα εκτέλεσης από τη χρήση low-level γλώσσας ή όπου αυτό είναι αναγκαίο (πχ I/O)). Θεωρητικά, αν γραφτεί όλη η standard library σε C θα υπάρχει ταχύτερη εκτέλεση αλλά είναι αμφίβολο αν κάτι τέτοιο αξίζει το αυξημένο maintenance cost.

 

Η httplib όπως είδες στο link που σου έδωσα είναι γραμμένη σε Python, και, όπως είναι φυσικό, χρησιμοποιεί και άλλες βιβλιοθήκες της standard library (πχ sockets κτλ)

Δημοσ.

Καλησπέρα σε ολους

ειμαι καινουριος στο forum οποτε....καλως σας βρηκα

τελος παντων εχω ενα προβληματάκι με Python

Η φιλοσοφία της Python kai to σκεπτικό της απο οτι εχω καταλάβει σε αυτους τους 7 μηνες που την μελετω ειναι η εξης

κανε τα παντα με ενα import ονομαβιβλιοθηκης

αλλα αυτο σε περιορίζει...και δεν σε αφήνει να μεγαλουργήσεις με αυτην  την γλωσσα

για αυτό θα ήθελα να ρωτήσω αν γινεται να κανεις οτι κανεις με τις βιβλιοθηκες αλλα....χωρις αυτες

πχ αν γινεται να ανοιξω ενα προγραμμα μεσω της python χωρις import os

πχ αν γινεται να στειλω ενα email μεσω της python χωρις το import SMTP

πχ αν γίνεται να εποικοινωνίσω σε εναν Server {αποστολη ενος HTTP request χωρις το import request / import httplib

τα παραδείγματα που αναφερω ειναι ενδεικτικα....

ευχαριστω πολυ :)

 

Νομίζω ότι έχεις μπερδέψει αρκετά τα πράγματα. Άλλο πράγμα είναι το module και άλλο το namespace. Τα πράγματα είναι οργανωμένα σε modules γιατί μας παρέχουν ευελιξία στην οργάνωση του κώδικα.

Φυσικά και όταν έχεις να κάνεις κάτι os related θα κάνεις import os. Γιατί γίνεται αυτό; Διότι πως αλλιώς να γινόταν; Να φόρτωνε η Python τα πάντα στην μνήμη; Να τα διαθέτει όλα με τη μορφή builtins (θα είχαμε συνέχεια name collisions). Ακριβώς επειδή η Python οργανώνει τα πάντα σε modules (από τα οποιά αποτελείται κάποια βιβλιοθήκη), σου δίνει τη δυνατότητα να μεγαλουργήσεις. Φυσικά τα πάντα είναι δυνατά χωρίς τη χρήση βιβλιοθηκών (γιατί όμως να θέλει κάποιος να κάνει κάτι τέτοιο? )

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...