Τα πάντα για την Python

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Τα πάντα για την Python

Δημοσίευσηαπό medigeek » 20 Φεβ 2012, 16:14

Μιλάς για το dbus;
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό clepto » 20 Φεβ 2012, 16:15

ναι
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό medigeek » 20 Φεβ 2012, 19:26

Υποθέτω μιλάς για event loop (να το καλεί και να ελέγχει συνέχεια;).
Δεν έχω δοκιμάσει ποτέ το dbus. Βρήκα μια αναφορά για "QObject":
http://dbus.freedesktop.org/doc/dbus-tu ... ml#objects
έγραψε:Your programming framework probably defines what an "object" is like; usually with a base class. For example: java.lang.Object, GObject, QObject, python's base Object, or whatever. Let's call this a native object.

http://www.riverbankcomputing.com/piper ... 24036.html
http://www.grulic.org.ar/~mdione/glob/p ... ject-dbus/

Βρήκα αυτό για pyside: http://www.pyside.org/docs/pyside-git/dbus.html
..κι αυτό για PyQt4: http://www.documentroot.net/en/linux/py ... s-tutorial
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό clepto » 20 Φεβ 2012, 20:30

ευχαριστώ θα τα κοιτάξω!
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό Ilias95 » 20 Φεβ 2012, 22:27

Έστω ότι έχουμε μία συνάρτηση.
Κώδικας: Επιλογή όλων
def foo(x, y, z):
print(x, y, z)

Επίσης έχουμε μία πλειάδα:
Κώδικας: Επιλογή όλων
_tuple = ('one', 'two', 'three')

Μπορούμε με κάποιο τρόπο να εκτελέσουμε την συνάρτηση περνώντας σαν ορίσματα αυτά της πλειάδας;
Χωρίς να δώσουμε "foo(_tuple[0], _tuple[1], _tuple[2])" βέβαια.
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό pmav99 » 20 Φεβ 2012, 23:06

ΓΙατί να το κάνεις αυτό? Explicit is better than implicit.

Αν το θες πάρα πολύ, δοκίμασε αυτό
Κώδικας: Επιλογή όλων
def foo(arguments):
a, b, c = arguments
print(a, b, c)

Όταν αρχίζεις να κάνεις αλχημίες βέβαια βάζε και κανά assert.
pmav99
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 574
Εγγραφή: 05 Ιούλ 2008, 14:29
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό Ilias95 » 20 Φεβ 2012, 23:27

pmav99 έγραψε:Explicit is better than implicit.

Δεν βλέπω τι σχέση έχει εδώ. Όχι δεν μου κάνει το παραπάνω.

Το σκέφτομαι με την λογική:
Κώδικας: Επιλογή όλων
>>> def foo(x, y, z):
... print(x, y, z)
...
>>> a = foo
>>> a('one', 'two', 'three')
one two three

Οπότε αφού όλα στην python είναι objects γιατί να μην γίνεται κάτι σαν:
Κώδικας: Επιλογή όλων
>>> _tuple = ('one', 'two', 'three')
>>> foo_tuple
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'foo_tuple' is not defined
>>>

Φυσικά το τελευταίο παράδειγμα δίνει NameError. Επίσης ούτε το "foo(_tuple)" θα δούλευε.
Μήπως υπάρχει κάποιος τρόπος να δηλώσουμε ότι αυτό που ακολουθεί της συνάρτησης foo είναι τα ορίσματα χωρίς να βάλουμε τις παρενθέσεις;
Ή κάποια συνάρτηση του στυλ "execute(function, arguments)" όπου τα arguments θα είναι μία λίστα ή μία πλειάδα;

Κατά πάσα πιθανότητα δεν γίνομαι ξεκάθαρος. :P :D

Edit: Πρέπει να το σκέφτομαι τελείως λάθος. Γιατί οι παρενθέσεις στην συνάρτηση δηλώνουν ότι πρόκειται για συνάρτηση, δεν δηλώνουν πλειάδα. :eh:
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό pmav99 » 20 Φεβ 2012, 23:37

Η σχέση είναι ό
Ilias95 έγραψε:
Δεν βλέπω τι σχέση έχει εδώ.
Η σχέση έχει να κάνει με το ότι αφού η συνάρτηση δέχεται 3 ορίσματα, καλύτερα να περάσεις 3 ορίσματα και όχι ένα. Και αφού δε σου άρεσε αυτό, δες και τα υπόλοιπα που νομίζω ότι κολλάνε (imho)
έγραψε:Simple is better than complex.
Sparse is better than dense.
Readability counts.
In the face of ambiguity, refuse the temptation to guess.
If the implementation is hard to explain, it's a bad idea.

Τα tuples δημιουργούνται από το κόμμα. Δες πχ tuple unpacking
Κώδικας: Επιλογή όλων
a, b = b, a
pmav99
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 574
Εγγραφή: 05 Ιούλ 2008, 14:29
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό Ilias95 » 20 Φεβ 2012, 23:42

You are right.

Οπότε πάμε σύμφωνα με το:
έγραψε:There should be one-- and preferably only one --obvious way to do it.

Και αφού δεν είμαι Ολλανδός περιμένω να μου έρθει η έμπνευση. :P
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό pmav99 » 20 Φεβ 2012, 23:52

Ilias95 έγραψε:
Μήπως υπάρχει κάποιος τρόπος να δηλώσουμε ότι αυτό που ακολουθεί της συνάρτησης foo είναι τα ορίσματα χωρίς να βάλουμε τις παρενθέσεις;
Αν θυμάμαι καλά κάτι τέτοιο επιτρέπει η ipython, αν δώσεις ένα command line argument, αλλά αν για κάποιον η πληκτρολόγηση είναι πρόβλημα καλύτερα να μάθει τυφλό :) :P
pmav99
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 574
Εγγραφή: 05 Ιούλ 2008, 14:29
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι