Co si myslíte o OOP?

Kit

Re:Co si myslíte o OOP?
« Odpověď #420 kdy: 04. 01. 2019, 17:32:52 »
Teoreticky. Prakticky treba kdyz mas getXs(), tak podle typu vis, zda mohou byt xka duplicitni (list vs. set).

K čemu potřebuješ rozlišovat list vs. text? Dostaneš kolekci a budeš s ní tak i pracovat.


Inkvizitor

Re:Co si myslíte o OOP?
« Odpověď #421 kdy: 04. 01. 2019, 17:44:11 »
Teoreticky. Prakticky treba kdyz mas getXs(), tak podle typu vis, zda mohou byt xka duplicitni (list vs. set).

K čemu potřebuješ rozlišovat list vs. text? Dostaneš kolekci a budeš s ní tak i pracovat.

List nemá stejné metody jako set, natož jako text.

Re:Co si myslíte o OOP?
« Odpověď #422 kdy: 04. 01. 2019, 17:47:35 »
Teoreticky. Prakticky treba kdyz mas getXs(), tak podle typu vis, zda mohou byt xka duplicitni (list vs. set).

K čemu potřebuješ rozlišovat list vs. text? Dostaneš kolekci a budeš s ní tak i pracovat.

On je tam trochu sémantický rozdíl, víme? A z toho typu vysloveně svítí.

Kit

Re:Co si myslíte o OOP?
« Odpověď #423 kdy: 04. 01. 2019, 17:53:01 »
Teoreticky. Prakticky treba kdyz mas getXs(), tak podle typu vis, zda mohou byt xka duplicitni (list vs. set).
K čemu potřebuješ rozlišovat list vs. text? Dostaneš kolekci a budeš s ní tak i pracovat.
List nemá stejné metody jako set, natož jako text.

Dobrá, zde tedy polymorfismus selhává. K čemu tedy potřebuji takovou kolekci vytahovat z objektu? Nebylo by lepší ji iterovat uvnitř nebo místo kolekce předat iterovatelný objekt?

Kit

Re:Co si myslíte o OOP?
« Odpověď #424 kdy: 04. 01. 2019, 18:01:34 »
Teoreticky. Prakticky treba kdyz mas getXs(), tak podle typu vis, zda mohou byt xka duplicitni (list vs. set).
K čemu potřebuješ rozlišovat list vs. text? Dostaneš kolekci a budeš s ní tak i pracovat.
On je tam trochu sémantický rozdíl, víme? A z toho typu vysloveně svítí.

Sémantický rozdíl nevidím. Seznam autorů nebo množina autorů? Pro mne je to kolekce autorů a budu s ní pracovat tak, aby když někdo vymění list za set, mi to mohlo být jedno.


Re:Co si myslíte o OOP?
« Odpověď #425 kdy: 04. 01. 2019, 18:02:49 »
Teoreticky. Prakticky treba kdyz mas getXs(), tak podle typu vis, zda mohou byt xka duplicitni (list vs. set).
K čemu potřebuješ rozlišovat list vs. text? Dostaneš kolekci a budeš s ní tak i pracovat.
List nemá stejné metody jako set, natož jako text.

Dobrá, zde tedy polymorfismus selhává. K čemu tedy potřebuji takovou kolekci vytahovat z objektu? Nebylo by lepší ji iterovat uvnitř nebo místo kolekce předat iterovatelný objekt?

Ne.

Protože s iteratorem nebo iterací uvnitř neuděláš rozumně  třebas základní množinové operace.

Re:Co si myslíte o OOP?
« Odpověď #426 kdy: 04. 01. 2019, 18:03:07 »
Teoreticky. Prakticky treba kdyz mas getXs(), tak podle typu vis, zda mohou byt xka duplicitni (list vs. set).
K čemu potřebuješ rozlišovat list vs. text? Dostaneš kolekci a budeš s ní tak i pracovat.
On je tam trochu sémantický rozdíl, víme? A z toho typu vysloveně svítí.

Sémantický rozdíl nevidím. Seznam autorů nebo množina autorů? Pro mne je to kolekce autorů a budu s ní pracovat tak, aby když někdo vymění list za set, mi to mohlo být jedno.

Pokud ti není jasný rozdíl mezi sémantikou listu a setu, tak je asi problém na tvém přijímači.

(Btw zrovna tady máš ještě o problém navíc, protože se rozlišuje první autor, korespondující autor...)
« Poslední změna: 04. 01. 2019, 18:06:27 od Ondra Satai Nekola »

operator

Re:Co si myslíte o OOP?
« Odpověď #427 kdy: 04. 01. 2019, 18:03:31 »
Kód: [Vybrat]
~ $ cat hint_test.py
class ContactForm:
    def __init__(self):
        self.name = none
        self.age = none

def assetContactForm(ContactForm form, string name, int age):
    form.name = name
    form.birth = age
    return form
~ $
~ $ python hint_test.py
  File "hint_test.py", line 6
    def assetContactForm(ContactForm form, string name, int age):
                                        ^
SyntaxError: invalid syntax
~ $
~ $ pylint hint_test.py
Using config file /data/data/com.termux/files/home/.pylintrc
************* Module hint_test
E:  6, 0: invalid syntax (<string>, line 6) (syntax-error)
~ $

Jak vidis, tak tuhle blbost ti python odchytne. Tvrzeni ze typing z pythonu udela staticky typovany jazyk je dalsi nesmysl. Az se prokouses moznostmi a schopnostmi typingu, probereme si moznosti cythonu.

UF

Re:Co si myslíte o OOP?
« Odpověď #428 kdy: 04. 01. 2019, 18:10:08 »
Teoreticky. Prakticky treba kdyz mas getXs(), tak podle typu vis, zda mohou byt xka duplicitni (list vs. set).
K čemu potřebuješ rozlišovat list vs. text? Dostaneš kolekci a budeš s ní tak i pracovat.
On je tam trochu sémantický rozdíl, víme? A z toho typu vysloveně svítí.

Sémantický rozdíl nevidím. Seznam autorů nebo množina autorů? Pro mne je to kolekce autorů a budu s ní pracovat tak, aby když někdo vymění list za set, mi to mohlo být jedno.

hele kite - zeptam se te jenom jednou ... jestli pak vis co je to anglicky "pasy"?

Kit

Re:Co si myslíte o OOP?
« Odpověď #429 kdy: 04. 01. 2019, 18:16:53 »
hele kite - zeptam se te jenom jednou ... jestli pak vis co je to anglicky "pasy"?

Ano, vím. Jak to souvisí s OOP?

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Co si myslíte o OOP?
« Odpověď #430 kdy: 04. 01. 2019, 18:26:52 »
Kód: [Vybrat]
~ $ cat hint_test.py
class ContactForm:
    def __init__(self):
        self.name = none
        self.age = none

def assetContactForm(ContactForm form, string name, int age):
    form.name = name
    form.birth = age
    return form
~ $
~ $ python hint_test.py
  File "hint_test.py", line 6
    def assetContactForm(ContactForm form, string name, int age):
                                        ^
SyntaxError: invalid syntax
~ $
~ $ pylint hint_test.py
Using config file /data/data/com.termux/files/home/.pylintrc
************* Module hint_test
E:  6, 0: invalid syntax (<string>, line 6) (syntax-error)
~ $

Jak vidis, tak tuhle blbost ti python odchytne. Tvrzeni ze typing z pythonu udela staticky typovany jazyk je dalsi nesmysl. Az se prokouses moznostmi a schopnostmi typingu, probereme si moznosti cythonu.

Chtěl jsem vyjít vstříc, a napsat to v jazyku, kterému oslovený rozumí, a takto on spolupracuje. OK, beru na vědomí.

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Co si myslíte o OOP?
« Odpověď #431 kdy: 04. 01. 2019, 18:38:22 »
Jako starý Pythonista...
Mohu tě požádat o odpověď na mou otázku?

Důvody pro použití dynamických typů:
1. za běhu měnitelný systém (znám jen Erlang)
2. prototypování (takové to, když potřebuješ jen něco zkusit, a upřesňovat to budeš pozdějc)
3. neumím, nebo jazyk neumí typy

Doplníš další? (Kromě těchto scénářů nevím o ničem, kdy by netypování (př. dynamické typování) bylo užitečné.)
« Poslední změna: 04. 01. 2019, 18:40:17 od BoneFlute »

Kadet

Re:Co si myslíte o OOP?
« Odpověď #432 kdy: 04. 01. 2019, 18:58:08 »
Jako starý Pythonista...
Mohu tě požádat o odpověď na mou otázku?

Důvody pro použití dynamických typů:
1. za běhu měnitelný systém (znám jen Erlang)
2. prototypování (takové to, když potřebuješ jen něco zkusit, a upřesňovat to budeš pozdějc)
3. neumím, nebo jazyk neumí typy

Doplníš další? (Kromě těchto scénářů nevím o ničem, kdy by netypování (př. dynamické typování) bylo užitečné.)

4. pripady, kdy staticky typovy system je prilis prisny a nepovoli preklad programu, ktery by dynamicky jazyk v pohode zvladnul a navic je takovy program lidsky intuitivni

operator

Re:Co si myslíte o OOP?
« Odpověď #433 kdy: 04. 01. 2019, 19:01:57 »
Jako starý Pythonista...
Mohu tě požádat o odpověď na mou otázku?

Důvody pro použití dynamických typů:
1. za běhu měnitelný systém (znám jen Erlang)
2. prototypování (takové to, když potřebuješ jen něco zkusit, a upřesňovat to budeš pozdějc)
3. neumím, nebo jazyk neumí typy

Doplníš další? (Kromě těchto scénářů nevím o ničem, kdy by netypování (př. dynamické typování) bylo užitečné.)
4. genericke programovani
5. flexibilita
6. jednodussi (prehlednejsi) kod
7. introspekce
8. interaktivita

v

Re:Co si myslíte o OOP?
« Odpověď #434 kdy: 04. 01. 2019, 19:09:31 »
8. interaktivita
to není výsada dynamických jazyků, viz např https://www.youtube.com/watch?v=mOtKD7ml0NU