![]() ![]() |
Post
#181
|
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%)
|
@dr_bonzo: 1. odpowiedź to ta na którą czekałem. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .
Fajne, nie? Ciekawiło mnie, czy ktoś z Was w ogóle się pokusi o wykonanie tego programu na swoim komputerze... Pozdrawiam |
|
|
|
Post
#182
|
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%)
|
Jabol: wykonalem, bo on tylko printa robi wiec nic nie poniszczy.
i gdzie ta sztuczka? |
|
|
|
Post
#183
|
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 3 Dołączył: 21.08.2006 Skąd: Zheshuv Ostrzeżenie: (0%)
|
a ja mam takie ogolne pytanie. co lepiej zaczac sie uczyc? php znam podstawy w minimalnym slowa znaczeniu (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
python czy php? |
|
|
|
Post
#184
|
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
@skali
Sam musisz wybrać, a już chyba sporo jest nawet w tym wątku abyś sam zdecydował. A co do "napisz w dwóch linijkach" to nie na tym polega siła języka. Ja raczej często rozbijam takie konstrukcje, aby były czytelne co robią. |
|
|
|
Post
#185
|
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 9.09.2007 Ostrzeżenie: (0%)
|
Z trzech: java, python, php uważam, że najlepsza i tak jest java. Python ma kilka zalet, ale ma też potężną wadę. Po (prawie) każdej zmianie wersji trzeba zmieniać kod aplikacji. Dotyczy to zwłaszcza Zope, które przecież jest najczęstszym powodem u
ywania pythona. W php jest to mimo wszystko mniej uciążliwe. Trzeba też się zastanowić do czego używa się php. Jeśli mamy zrobić krótki skrypt, to jasne, że nie potrzeba nam nie_wiadomo_jakiej obiektowości (po co sobie życie komplikować), a jeśli mamy do zbudowania potężną aplikację, to python okaże się zbyt nieprzewidywalny i jednak za trudny w utrzymaniu, ze swoimi wszystkimi kruczkami i sztuczkami. |
|
|
|
Post
#186
|
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%)
|
@dr_bonzo: nie ma, bo rozwiązaliście zagadkę.
@Sedziwoj: ja też zazwyczaj zapisuje normanlą wersję takich kombinacji.... w komentarzach. Aczkolwiek w Pythonie jest to raczej normalny zapis, nic specjalnego... @sp_: Python jest kompatybilny wstecz. Jeżeli już coś to się zaczną jaja z Pythonem 3k, ale nikogo to dziś nie powinno interesować, bo to będzie praktycznie nowy język. Jestem pewnien, że Python 2.x jeszcze długo pożyje i nie będzie tak jak w przypadku PHP to życie w którym wszyscy będą mu życzyli śmierci. Jeżeli zresztą wszystko co słyszałem o Pythonie 3k jest prawdą, szybko ktoś zrobi forka z 2.x i po prostu ten język tak szybko nie umrze. A co do Zope, to już możesz mieć zastrzeżenia do programistów Zope. To akurat z Pythonem nie ma nic wspólnego. |
|
|
|
Post
#187
|
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
@Sedziwoj: ja też zazwyczaj zapisuje normanlą wersję takich kombinacji.... w komentarzach. Aczkolwiek w Pythonie jest to raczej normalny zapis, nic specjalnego... Normalny zapis? czyli nieczytelny... ciekawe, a tak chwalicie, a tu jest nieczytelny język, przez te wszystkie bajery, chociaż wcięć nie ominiecie (IMG:http://forum.php.pl/style_emoticons/default/aaevil.gif) |
|
|
|
Post
#188
|
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%)
|
Normalny zapis? czyli nieczytelny... ciekawe, a tak chwalicie, a tu jest nieczytelny język, przez te wszystkie bajery, chociaż wcięć nie ominiecie (IMG:http://forum.php.pl/style_emoticons/default/aaevil.gif) Czemu nieczytelny? Przecież to jest zwykły konstruktor listy, nic w nim specjalnego i nieczytelnego nie ma... Akurat to jeszcze ujdzie, ale np. metoda zrobienia "switch" w Pythonie jest dość ciekawa: Kod {1: (lambda x: action_1(x)), 2: (lambda x: action_2(x))}.get(key, (lambda x: default_action()))(key) I do takiego kodu już zapisuje w komentarzach: Kod if key == 1: action_1(1) elif key == 2: action_2(2) else: default_action() Ale chyba widać różnice w czytelności pomiędzy tą czarną magią a tamtym prostym przykładem konstruktora listy... Ten post edytował Jabol 10.09.2007, 13:07:29 |
|
|
|
Post
#189
|
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
Takie przykłady tylko mnie zniechęcają do Pythona...
Choć w testach (tych test.php.pl) też ludzie dają takie konstrukcje, że tylko wkurza, brak czytelności i trudnością nie jest sam to co to robi, tylko dojście co to w ogóle robi. |
|
|
|
Post
#190
|
|
|
Grupa: Zarejestrowani Postów: 418 Pomógł: 8 Dołączył: 16.11.2006 Ostrzeżenie: (0%)
|
A ja się chciałem Szanownych Kolegów spytać - co to za magia z z tą całą pełną obiektowością ("wszystko jest obiektem")? Przy rozbudowanych programach/aplikacjach jest to rzecz b. przydatna, fakt, ale jak ktoś chce to może to sobie w PHP zaimplementować i tak. No a przy małych programikach? Ładniej (i bardziej przejrzysto, co ważniejsze) wygląda te 15 linijek pisanych strukturalnie, a nie klasa, prawda?
|
|
|
|
Post
#191
|
|
|
Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%)
|
Nie da sie zaimplementowac w PHPie "pelnej obiektowosci" - to jakby cos (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
|
Post
#192
|
|
|
Grupa: Zarejestrowani Postów: 418 Pomógł: 8 Dołączył: 16.11.2006 Ostrzeżenie: (0%)
|
Nie nie, nie o to mi chodzi, wiem, że w PHP nie jest w pełni obiektowe, ale jaki sens ma "pełna obiektowość" - nie lepiej przy prostych programach pozostać przy kodzie strukturalnym, obiektowość pozostawiająć do zaimplementowania chętnym (i umiejącym to zrobić), a nie wymuszać używanie klas od samego początku?
|
|
|
|
Post
#193
|
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%)
|
A ja się chciałem Szanownych Kolegów spytać - co to za magia z z tą całą pełną obiektowością ("wszystko jest obiektem")? Przy rozbudowanych programach/aplikacjach jest to rzecz b. przydatna, fakt, ale jak ktoś chce to może to sobie w PHP zaimplementować i tak. No a przy małych programikach? Ładniej (i bardziej przejrzysto, co ważniejsze) wygląda te 15 linijek pisanych strukturalnie, a nie klasa, prawda? Wiesz, czym jest pełna obiektowość? Wprowadzeniem niech będzie: ani Java, ani PHP ani nawet C++ nie są językami w pełni obiektowymi. Czemu? Bo nie wszystko w nich jest obiektem. A jak to jest w Pythonie? W Pythonie *wszystko* jest obiektem. W Pythonie każda operacja jest operacją na obiekcie. Tzn. jest sobie system obiektowy, a Python to tylko system zarządzania tymi objetami. Język który je oraz interakcje między nimi definiuje. Np. Kod a = 1 + 1 Tłumaczone jest do:Kod a = 1.__add__(1) # 1 jest obiektem typu types.IntType W powyższym przykładzie a to tylko nazwa referencji do obiektu.W Javie np. przykładowa klasa: Kod class Abc {} I teraz Abc nie jest obiektem, a klasą. Natomiast Abc.class jest obiektem reprezentującym klasę, czy jakoś tak. I teraz swoją drogą jak w ogóle Abc może posiadać atrybut class skoro nie jest obiektem?W Pythonie każda klasa jest obiektem. A raczej definicja klasy to nic innego jak zdefiniowanie referencji o pewnej nazwie do obiektu klasy. Dalej idąc, funkcje, czy raczej obiekty wykonywalne też są obiektami. Tego nie ma ani w Javie ani w PHP. Pomimo, że istnieje klasa Method w Javie, nie reprezentuje ona wykonywalnej metody, a jedynie ją obudowuje. Rozważ np, Kod a = 1 W powyższym przykładzie a,b,c,d oraz e to dokładnie to samo: referencje do obiektów. I pomimo, że niektóre obiekty można tworzyć inaczej niż poprzez Name(*args, **kwargs), to są to tylko skróty interpretera.b = "str" class c: pass def d(): pass e = c() Każda funkcja zwraca jakiś obiekt, każda referencja odnosi się do jakiegoś obiektu. I tak np. możesz wykonywać operacje na obiektach zwróconych przez jakieś funkcje referencje. Rozważ ten przykład z PHP. Tymsamym, jak widizisz nie wszystko jest obiektem, a wartości są dużo bardziej powiązane ze zmiennymi niż teoretycznie powinny. W Pythonie jest dokładnie na odwrót. Rozważ ten przykład Kod def abc(): def bca(): return 1 return bca // następujące wywołanie jest całkiem poprawne spowoduje wypisanie jedynki. Czemu? Bo abc() zwraca referencje do obiekty wykonywalnygo, a drugi zestaw nawiasów powoduje, że interpreter go wywołuje print abc()() // w rzeczywistości następuje takie oto wywołanie (pomijam, na co jest tłumaczony print) print abc.__call__().__call__() Teraz co do klas jeszcze. Jak powstają atrybuty klas? Nie inaczej, jak poprzez umieszczenie referencji do ich obiektów w tzw. słowniku klasy. Każda klasa ma atrybut __dict__, który jest słownikiem przechowującym jej atrybuty. Oczywiście __dict__ jest jakąś tam specjalną nazwą i nie znajduje się sam w sobie. A czym są metody? Metody klas to nic innego jak obiekty wykonywalne do których referencje przechowywane są w słowniku klasy... Tzn., że pomiędzy atrybutami nie ma żadnej różnicy ze strony klasy. Różnią się one tylko między sobą swoim typem. I tak np. kolejne tłumaczenie Kod class A: def b(self): pass anA = A() anA.b() // jest tłumaczone na anA = A.__new__() anA.__dict__["__init__"].__call__(anA) anA.__dict__["b"].__call__(anA) Mam nadzieje, że było to zrozumiałe i pouczające. Pozdrawiam Adam PS. Mam wrażenie, że gdzieś już o tym pisałem Ten post edytował Jabol 10.09.2007, 16:14:14 |
|
|
|
Post
#194
|
|
|
Grupa: Zarejestrowani Postów: 418 Pomógł: 8 Dołączył: 16.11.2006 Ostrzeżenie: (0%)
|
Dziękuję uprzejmię (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Może się nie dość jasno wyraziłem... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Czy aby ta wszędobylska obiektowość jest naprawdę WSZĘDZIE potrzebna? Czy języki strukturalne nie działają szybciej? I wreszcie... Jakie są jej zalety (poza pełnym zachwytu mlaskaniem nad pięknem obiektowego świata)?
Jabol => Jeżeli będziesz musiał się powtarzać, to sorry, gapa ze mnie... Gwoli ścisłości, nie jestem jakimś wrogiem obiektowości, chciałbym tylko żeby Szanowni Koledzy w sposób w miarę przekonujący przekonali niżej podpisanego o powyższym. Pozdrawiam! (IMG:http://forum.php.pl/style_emoticons/default/party.gif) Ten post edytował qqrq 10.09.2007, 16:49:27 |
|
|
|
Post
#195
|
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%)
|
qqrq: obiektowość pythona nie narzuca stylu pisania. Możesz wciąż tworzyć strukturalnie.
|
|
|
|
Post
#196
|
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
CZy mi się wydaje, czy Smalltalk nie jest czymś podobnym ;>
A JS która ma podobne zachowanie, nie oznacza że jest lepsza. To że masz olbrzymie możliwości zmiany działania, nie oznacza że jest lepsze. Jak już dziś wspominałem Python to taki pojazd z trzema kołami, nie czyni to gorszym od samochodu, ale nie można powiedzieć że nim jest. |
|
|
|
Post
#197
|
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%)
|
CZy mi się wydaje, czy Smalltalk nie jest czymś podobnym ;> A JS która ma podobne zachowanie, nie oznacza że jest lepsza. To że masz olbrzymie możliwości zmiany działania, nie oznacza że jest lepsze. Jak już dziś wspominałem Python to taki pojazd z trzema kołami, nie czyni to gorszym od samochodu, ale nie można powiedzieć że nim jest. Co nazwałbyś samochodem w takim razie? Bo rozumiem, że są wg Ciebie języki od których w takim razie Python jest ewidentnie gorszy? Smalltalka nie znam |
|
|
|
Post
#198
|
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
Co nazwałbyś samochodem w takim razie? Bo rozumiem, że są wg Ciebie języki od których w takim razie Python jest ewidentnie gorszy? Czy Ty w ogóle przeczytałeś co ja napisałem? Może powtórzę: Cytat Python to taki pojazd z trzema kołami, nie czyni to gorszym od samochodu
|
|
|
|
Post
#199
|
|
|
Grupa: Zarejestrowani Postów: 866 Pomógł: 32 Dołączył: 2.06.2004 Skąd: Wrocław Ostrzeżenie: (0%)
|
Jak robisz analogie to powinieneś powiedzieć do czego (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Nadal nie wiemy czym jest samochód (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
|
Post
#200
|
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
Jak robisz analogie to powinieneś powiedzieć do czego (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Nadal nie wiemy czym jest samochód (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) O a jednak ktoś zauważył (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) A zobacz, że mimo że poprzednik mimo że nie wiedział o czym mowa, bronił Pythona... |
|
|
|
![]() ![]() |
|
Aktualny czas: 13.06.2026 - 14:40 |