Programiranje

Python programiranje kao hobi

cale sub 26.3.2016 12:35

opet moram gnjaviti (stvarno ima puno toga za pohvatat) ali sad imam pitanje u vezi notepad++. Htio bih da kada napišem kod u notepad++ da ga samo pokrenem da ne moram stalno ponovo tipkat u python. Pokusavao sam preko plugin-a Nppexec i pratio sam guide ali nista. Skripta koju sam upisao ("C:\Programi\Python34\Lib\idlelib\idle.py "$(FULL_CURRENT_PATH") ne radI,Izbaci mi ovakav error(CreateProcess() failed with error code 193: %1 is not a valid Win32 application.

Probao sam s drugim programom (Lua) i cak mi pokrene console ali ne obrađuje kodove. Mislim naravno ne znam tocno kako to sve funkcionira,samo sam pratio guidove koje sam naletio na netu.

 

rangoj sub 26.3.2016 18:07
cale kaže...

opet moram gnjaviti (stvarno ima puno toga za pohvatat) ali sad imam pitanje u vezi notepad++. Htio bih da kada napišem kod u notepad++ da ga samo pokrenem da ne moram stalno ponovo tipkat u python. Pokusavao sam preko plugin-a Nppexec i pratio sam guide ali nista. Skripta koju sam upisao ("C:\Programi\Python34\Lib\idlelib\idle.py "$(FULL_CURRENT_PATH") ne radI,Izbaci mi ovakav error(CreateProcess() failed with error code 193: %1 is not a valid Win32 application.

Probao sam s drugim programom (Lua) i cak mi pokrene console ali ne obrađuje kodove. Mislim naravno ne znam tocno kako to sve funkcionira,samo sam pratio guidove koje sam naletio na netu.

 

 Kod mene na Python2.7 ovo radi C:\Python27\python.exe -i "$(FULL_CURRENT_PATH)" - upises u run (f5) - snimi i dodijeli precicu, npr Alt +W

 

Meni je problem sto ovako imam problem sa pronalazenjem fajlova, ako upisem ime fajla koji je u istom direktorijumu, nece da ga pronadje.

 

Tako da ja koristim Python IDLE - za moj kuckanja je i vise nego dovljan, sa f5 izvrsava kod. Svakako je puno prijatniji od win command prompt-a (u kojem i Notepad++ prikazuje rezulate, jos jedan razlog sto ga ne koristim).

rangoj sub 26.3.2016 19:00
1domagoj1 kaže...

Nije tesko nauciti kako iskodirati klase i kako s njima raditi, ono teze je nauciti kada i kako ih upotrebljavati. Nazalost, tu nema nekog jednostavnog objasnjenja. Za pocetak moras se upoznati s pojmovima enkapsulacija, nasljedivanje, polimorfizam i apstrakcija (ima i drugih). Te pojmove dalo bi se svesti u sljedecu recenicu: kod objektno orijentiranog programiranja radi se o grupiranju podataka s funkcijama (enkapsulacija) koje manipuliraju tim podacima, ali tako da skrivaju nacin na koji rade ispod haube (apstrakcija). Ponasanje onda mozes mijenjati, tj. nadogradivati nasljedivanjem.

 

 

Poliformizam je tu malo drugacija zvjercica koju je malo teze shvatiti. Doslovno znaci "mijenjanje oblika". U prijevodu, jedan tip objekta moze se predstavljati kao drugi. Npr., imas klasu Zivotinja iz koje imas izvedene klase Macka i Pas. Polimorfizam ti omogucuje da radis i s objektima klase Macka i objektima klase Pas pod istim zajednickim nazivnikom. Npr., imas metodu govori() u klasi Zivotinja i pozoves ju nad bilo kojom izvedenom klasom, odgovor koji ces dobit bude adekvatan toj klasi. Znaci ako pozoves metodu nad objektom tipa Macka dobit ces "mijau", a ako pozoves nad objektom tipa Pas, dobit ces "vau". Sve to bez da imas posebne metode "govori_macka()" ili "govori_pas()". Mislim da ti sad nakon ovoga nije nista jasno XD, najlakse bi mi to bilo pokazati na primjeru C++-a ako zelis.

 

EDIT: S tim da bi se jezik zvao objektno orijentiranim, potrebno je da podrzava enkapsulaciju, nasljedivanje i polimorfizam (sto Python sve podrzava). Apstrakcija nije toliko nuzna i Python za razliku od drugih jezika nema implicitno podrzanu apstrakciju. Kako je rekao Guido van Rossum (tvorac Pythona) "we are all adults here" misleci pritom da smo dovoljno zreli i pametni da kao programeri necemo dopustati da jedni objekti kopaju po podacima drugih objekata (to apstrakcija pokusava sprijeciti jer skriva sto se radi ispod haube pojedinog objekta). Objekti medusobno suraduju (i trebaju suradivati) jedino preko predefiniranog javnog sucelja.

Kapiram dobardio onoga sto si napisao, bar ono sto sam vec radio (bar mislim da kapiram).

 

Da li je primjer sa mackom i psom slican ovome, ja sam pisao skriptu za vjezbu u kojoj se nasljedjuju osobine, pa sam napravio klasu Osobu, kao glavnu klasu, a zanimanja kao izvedene klase sa svojim dodatnim atributima.

 

Tako da npr objekat1.zanimanje() vraca odredjeno zanimanje, zavisno od "pod klase" (ili izvedene klase) u kojoj se nalazi - na primjer "gradjevinac", a objekat2.zanimanje() vraca "arhitekta" - pored svojih klasa, oba objekta se nalaze i u glavnoj klasi Osobe. (Mogao bi vratiti i zvuk umjesto zanimanja :))

Tako ja mogu imati nekoliko objekata koji imaju razlicita zanimanja i dodavati im osobine (preko funkcija koje mijenjaju podatke), svakom zasebno u njegovoj bransi, stim da dijele osnovne podatke iz klase Osobe. Svi imaju atribut zanimanje, ali samo Muzicar ima 'instrument' u svojoj klasi i sl.

 

Nisam siguran kako bih ovo mogao uraditi sa funkcijama, tj. da radim sa nekoliko objekata u isto vrijeme.

 

 

Sad pokusavam iskoriti klase za manipulaciju knjigama (u txt fajlovima) - tj. rad sa nekoliko knjiga (objekata) u isto vrijeme, tipa isprintaj prvih toliko linija za objekat1 (objekat1.printFirstLines(50), saznaj nacescu rijec za objekat2 (objekat2.findWordNumber('morning'), presnimi dijelove knjige u drugi txt fajl i sl.

Sve te funkcije sam vec napisao, ali ih sada zelim objediniti pod klasama.

 

Trudim se da shvatim prednosti klasa.

 

U svakom slucaju, sve ovo je zanimljivo. (i jedva cekam svoj raspberry Pi)

1domagoj1 sub 26.3.2016 19:49

Tako je, dobro si to primjetio sa zanimanjima i osobama.

 

Bitno je samo da sad u pocetku pohvatas te osnovne pojmove (enkapsulacija, nasljedivanje, polimorfizam i apstrakcija). Kad si dovoljno upoznat s njima i siguran, mozes prijeci na iducu razinu, gdje bi ti onda trebalo postati prilicno jasno pitanje "zasto objektno orijentirano programiranje". Govorim dakako, o oblikovnim obrascima u programiranju. Iako, uvijek moras imati i na umu da OOP nije alfa i omega. Da, najkorisnije je i najvise se koristi, ali nije nuzno uvijek i najbolji izbor. Nekad je jednostavno dovoljno obicno proceduralno programiranje.

cale uto 5.4.2016 19:23

def process_file(filename,order=2):

fp=open(filename)

skip_gutenberg_header(fp)

for line in fp:

print(line)

 

def skip_gutenberg_header(fp):

for line in fp:

if line.startswith("END"):

             break

 

Nije mi jasno kako u funkciji process_file on printa sve linije poslije linije koja sadržava "END". Na koji način su se ove dvije funkcije povezale.

Ovo je primjer s ove stranice:
http://greenteapress.com/thinkpython/code/markov.py

 

Bobobo-bo Bo-bobo uto 5.4.2016 22:40

Rezultat funkcije open je file object koji pamti svoju trenutnu poziciju. Čitanje retka pomiče trenutnu poziciju na početak slijedećeg retka.

 

Zbog ovoga drugi for (onaj u funkciji process_file) nastavlja tamo gdje je prvi for (onaj u funkciji skip_gutenberg_header) stao.

cale uto 5.4.2016 23:15

ako sam dobro shvatio, razlog je taj file sam po sebi? Što znaci da je umjesto file,bila lista [1,2,3,4,5] koja bi u funkciji gutenberg dosla do 3 a onda se u prvo funkciji nastavila od 3 (recimo npr.ispisivati te brojeve iz liste)

Bobobo-bo Bo-bobo čet 7.4.2016 00:13

Program će ispisati cijelu listu [1,2,3,4,5] jer lista (za razliku od TextIOWrappera kojeg ti vrati open) prilikom iteriranja uvijek kreće ispočetka, npr:

 

def process_file(filename, order=2):
    fp = ['1', '2', 'END3', '4', '5']
    skip_gutenberg_header(fp)
    for line in fp:
        print(line)

def skip_gutenberg_header(fp):
    for line in fp:
        if line.startswith("END"):
             break

process_file('')
>>>
1
2
END3
4
5

 

cale pet 15.4.2016 18:33

U vezi crtanja grafickih elemenata.Malo sam gledao po netu objasnjenja da probam shvatiti kako to funkcionira. Sad zanima me da li je taj GUI ono sto program drzi na "zivotu" odnosno da se ne prekine sve dok korisnik ne odluci, ili ja moram napisati funkciju koja ce konstantno pozivati ostale funkcije i tako program odrzavati na "zivotu". Nisam mozda najbolje postavio pitanje........ Da li taj GUI kad ga importam i stvorim okvir  da li je on sam taj program koji se odrzava i ceka naredbe koje ce pokrenuti ostale funkcije.

1domagoj1 pet 15.4.2016 21:37
cale kaže...

U vezi crtanja grafickih elemenata.Malo sam gledao po netu objasnjenja da probam shvatiti kako to funkcionira. Sad zanima me da li je taj GUI ono sto program drzi na "zivotu" odnosno da se ne prekine sve dok korisnik ne odluci, ili ja moram napisati funkciju koja ce konstantno pozivati ostale funkcije i tako program odrzavati na "zivotu". Nisam mozda najbolje postavio pitanje........ Da li taj GUI kad ga importam i stvorim okvir  da li je on sam taj program koji se odrzava i ceka naredbe koje ce pokrenuti ostale funkcije.

A kud ces vec nakon 2 mjeseca na GUI? xD

 

Da li si upoznat s objektno orijentiranim programiranjem?

cale pet 15.4.2016 21:58

idem po knjizi think python i sad sam dosao na lekciju Tkinter.

Tesko je reci da razumijem toliko dobro da mogu "baratati" pojmovima. Sad sam prolazio klase i objekte iz knjige. Nekako sam shvatio da su klase jedan visi pojam od objekta. Klasa ima jedan cilj a pomocu objekata ce ga ostvariti...tako nekako. Ali u principu mi je sve maglovito.

1domagoj1 pet 15.4.2016 22:31
cale kaže...

idem po knjizi think python i sad sam dosao na lekciju Tkinter.

Tesko je reci da razumijem toliko dobro da mogu "baratati" pojmovima. Sad sam prolazio klase i objekte iz knjige. Nekako sam shvatio da su klase jedan visi pojam od objekta. Klasa ima jedan cilj a pomocu objekata ce ga ostvariti...tako nekako. Ali u principu mi je sve maglovito.

Ok, pitam samo jer GUI se u principu temelji na objektno orijentiranom programiranju.

 

No, da adresiram tvoje pitanje, ne znam kako je to s Tkinterom jer ga nikad nisam koristio, oduvijek koristim Qt, tj. PyQt kao njegovu Python inacicu. U PyQt-u bi to izgledalo ovako:

import sys
from PyQt4 import QtGui

def main():
   
    app = QtGui.QApplication(sys.argv)

    w = QtGui.QWidget()
    w.resize(250, 150)
    w.move(300, 300)
    w.setWindowTitle('Simple')
    w.show()
   
   sys.exit(app.exec_())


if __name__ == '__main__':
    main()

 

Ovo podebljano je glavnina svega. Tu se ulazi u glavnu petlju dogadaja (engl. event loop) gdje petlja prima dogadaje od sustava prozora i salje ih dalje widgetima u programu.

Dakle, imas jednu glavnu petlju koja se stalno vrti, a koju ne radis ti, vec se za to brine u ovom slucaju Qt.

 

Kako je tocno kod Tkintera ne znam, ali nesto slicno sigurno.

Bobobo-bo Bo-bobo ned 17.4.2016 22:02

Ne moraš ništa posebno poduzeti da Tkinter program "održavaš u životu" - poziv metode mainloop top-level widgeta blokira program dok se prozor ne zatvori:

 

from tkinter import *

root = Tk()
Label(root, text="Hello, world!").pack()
root.mainloop()

print('Done')

 

Tekst Done će se ispisati (na konzoli) tek kada zatvoriš prozor.

 

 

Klase u Pythonu su specifične u odnosu na ostale mainstream jezike pa se početnicima savjetuje da dobro prouče funkcije i standardne tipove prije nego se uhvate klasa.

rangoj pon 18.4.2016 00:17
cale kaže...

idem po knjizi think python i sad sam dosao na lekciju Tkinter.

Tesko je reci da razumijem toliko dobro da mogu "baratati" pojmovima. Sad sam prolazio klase i objekte iz knjige. Nekako sam shvatio da su klase jedan visi pojam od objekta. Klasa ima jedan cilj a pomocu objekata ce ga ostvariti...tako nekako. Ali u principu mi je sve maglovito.

Ja sam pocetnik, kao i ti, ali ipak zelim da ti objasnim na koji nacin ja posmatram klase.

Gledaj na klase kao na sablone koje koristis da objektu das svojstva. (sablon ili blueprint)


Zamisli da se bavis grcarijom, da pravis objekte od gline, ukrase, posude i sl.

Uzmes komad gline i korak po korak napravis posudu, prstima - i za to ti treba sat vremena - prilicno spor proces koji ti nece donijeti veliku zaradu, mozes napraviti samo nekoliko posuda dnevno, jer svaki put kreces od pocetka. Te posude su tvoji objekti, sa kojima ti radis.

Jedan dan ti sine ideja da napravis kalupe i sebi ubrzas posao -> napravis metalni kalup posude u koji utisnes smjesu i dobijes gotov proizvod, sve za 10min u odnosu na sat ili vise koliko ti je trebalo ranije. Metalni kalup mozes koristi milion puta za milion razlititih posuda, stim da svaka posuda ima iste atribute, sirinu i visinu, izgled rucke, donjeg dijela i sl. - to je sve unaprijed odredjeno kalupom. Kad izvadis posudu iz kalupa mozes da je obojis u zanimljive boje i prodas, vise ne moras da se zezas da oblikovanjem gline i trosis vrijeme.

Taj kalup je klasa, objekat je proizvod od gline, posuda. Ti posudu sada pravis brze nego ranije, kao na pokretnoj traci - samo utisnes glinu. Kada upises kod imeObjekta = mojaKlasa() u tom trenu tvoj objekat ('imeObjekta") poprima svojstva klase, kao sto glina poprima oblik kalupa, i ti onda mozes nastaviti raditi sa oformljenom posudom, odnosno objektom - mozes dalje da ga doradjujes ako to zelis.

Klasa, odosno kalup ti omogucava jos jednu ekstra stvar, modularnost -> na tvom metalnom kalupu ti mozes skinuti klasicnu rucku i dodati spiralnu, ili skinuti gornji dio i zamijeniti ga sa drugacijim dijelom, pa kada utisnes glinu dobijes jos jednu drugaciju posudu - objekat, koji je potekao iz osnovnog kalupa, ali posto si zamijenio rucku ti si sad super brzim procesom dobio novi objekat koji ima drugacija svojstva, "posuda sa spiralnom ruckom" npr.

Ovo dobijas tako sto pravis "podklase", koje sadrze osnovne atribute za izradu posude iz glavne klase, ali i svoje, nove atribute - novi izgled rucke, ili siri gornji dio posude.



Jos jedan primjer, zamisli da imas klasu class plaviKrug() i da si u njoj isprogramirao parametre tog kruga, boju, nacin kretanja po sceni i sl. Ta klasa "plaviKrug" predstavlja sablon za davanje svostava objektu (stvaranje kruga) - "kruznica radijusa 6", "boja plava" i sl. Da bi ga pokrenuo, da bi stvorio krug, ti ces sablonu dodijeliti objekat - povezat ces objekat i klasu, npr.

krug1 = plaviKrug()
test2 = plaviKrug()
x = plaviKrug()

Ovo ce na sceni napraviti tri plava kruga, tri objekta sa nazivima krug1, test2 i x koji imaju ista svojstva. (Naravno, morat ce napraviti random koordinata za pojavljivanje kruga, ili ce se sva tri pojaviti na istom mjestu :)) -> znaci dobio si tri objekta sa istim svojstvima sa kojima mozes jednostavno dalje raditi - mijenjati im boje, oblik, pokretati ih i sl.

Ili mozes napraviti "podklasu" class plaviKvadrat(plaviKrug), koja ce nasljediti svojstva osnovne klase, u njoj neces morati ponovo pisati kompletan kod, vec ces samo izmjeniti parametar "oblika".  rex = plaviKvadrat() => dobijas objekat "rex" koji je predstavljen kao plavi kvadrat



Jednom napisan kod koristis vise puta, i stvaras vise objektata sa istim svojstvima -> to je prednost klasa, onako pojednostavljeno, kako to ja posmatram. Nadam se da zvuci razumiljivo jer je u principu jednostavno. Naravno, kod klase zna izgledati komplikovano, posebno ako je ogroman i ukljucuje biblioteku sa kojom se nisi dobro upoznao...

P.S. ispravio gluposti iznad, kasno je pa kuckam svasta... :)

cale pon 18.4.2016 00:49

Hvala,ak mogu jos sam malo proispitat........te klase su samo metode koje ce mi pomoci da stvorim nesto ako sam dobro razumio......jel onda objekt x=2,mislim jer ja sam to naucio kao varijable i vrijednosti.Varijabla je x,vrijednost je 2 a sve zajedno je to objekt?

rangoj pon 18.4.2016 01:32

Koliko ja razumijem:

x postaje objekat u trenutku kada mu je
dodijeljena vrijednost/atribut -> u ovom slucaju 2, (type(x) ce reci integer). Jednako tako promjenjivoj x si mogao dodijeliti i klasu x = plaviKrug(), tada bi objekat x pripadao tvojoj klasi plaviKrug, umjesto klasi integer... type(x) -> instance

Bobobo-bo Bo-bobo pon 18.4.2016 18:59

Objekt je broj 2, a x je lokalno ime koje referencira taj objekt. Python nema varijable u klasičnom smislu - rezervirani dio memorije u piše neka vrijednost (ili garbage) unaprijed poznatog tipa. Tip objekta je pridružen samom objektu, a dodjelom vrijednosti stvara se novo ime i veza između imena i konkretnog objekta. U primjeru

 

x = 1
x = 'spam'
x = PlaviKrug()

 

pogrešno je reći "objekt x mijenja tip iz retka u redak". Objekti u gornjem priimjeru su integer 1, string 'spam' i instanca klase PlaviKrug, a x je ime. Varijable su dictionary ime: objekt

 

print(locals())
x = 1
print(locals())
x = 'spam'
print(locals())
del(x)
print(locals())

#Ispis
#{'__doc__': None, '__package__': None, ... , '__name__': '__main__'}
#{'__doc__': None, '__package__': None, ... , '__name__': '__main__', x: 1}
#{'__doc__': None, '__package__': None, ... , '__name__': '__main__', x: 'spam'}
#{'__doc__': None, '__package__': None, ... , '__name__': '__main__'}

 

 

Ono što klase nude je proširenje ovog dictionaryja. Prilikom evaluacije izraza x.atribut Python prvo traži "atribut" u dictionaryju objekta kojeg referencira varijabla x. U slučaju da ga tamo nema pretražuje se dictionary klase tog objekta, ako ga nema ni tamo pretraga se rekurzivno seli na parent klase.

 

Dok su klase jedini čekić u kraljevstvu imenica, u Pythonu su one samo jedan od alata. Nedostatak klasa (osim razbacane logike) se već može vidjeti na primjeru PlaviKrug->PlaviKvadrat - kako organizirati hijerarhiju ako mi treba CrveniKrug, CrveniKvadrat, ili oba?

rangoj pon 18.4.2016 19:48

Znaci ovako?

x = plaviKrug()
Klasa je objekat, a x postaje instanca tog objekta?

 

x = 2

2 je objekat, a x postaje instanca objekta 2?

 

 

y = 'mojstring'

'mojstring' je objekat, a y postaje instanca tog objekta?

 

 
Samo da dodam

Znaci objekti bi bili sve one "stvari" koje u python-u imaju svoj id? Stim da nazivi, x, y... nose id "svog" objekta?

tLeon pon 18.4.2016 21:34
cale kaže...

Napisao sam program koji radi,na pocetku programa on stvara bazu podataka, problem nastaje kada taj py file pretvorim u exe file,onda ne zeli stvoriti bazu podataka?

 pokreni program preko cmd-a i onda ce ti ispisati gresku.

1domagoj1 pon 18.4.2016 22:53
Bobobo-bo Bo-bobo kaže...

... Nedostatak klasa (osim razbacane logike) se već može vidjeti na primjeru PlaviKrug->PlaviKvadrat - kako organizirati hijerarhiju ako mi treba CrveniKrug, CrveniKvadrat, ili oba?

Ne kuzim bas sto zelis reci, mozes li to malo bolje objasniti?

Bobobo-bo Bo-bobo pon 18.4.2016 23:23

Objekt je instanca klase - izraz instanca objekta nema smisla.

 

rangoj kaže...

x = plaviKrug()
Klasa je objekat, a x postaje instanca tog objekta?

 

1) plaviKrug je klasa

2) plaviKrug() kreira novi objekt, kreirani objekt je nova instanca klase plaviKrug

3) x je ime koje referencira objekt kreiran u 2), ili kraće referenca na taj objekt

 

rangoj kaže...

x = 2

2 je objekat, a x postaje instanca objekta 2?

y = 'mojstring'

'mojstring' je objekat, a y postaje instanca tog objekta?

 

Slično kao i gore: x je referenca na objekt 2 (taj objekt je instanca klase int), y je referenca na objekt 'mojstring' (taj objekt je instanca klase string)

 

rangoj kaže...
Samo da dodam


Znaci objekti bi bili sve one "stvari" koje u python-u imaju svoj id? Stim da nazivi, x, y... nose id "svog" objekta?

 

Da, ako dvije stvari imaju isti id onda su to identični objekti.

cale uto 19.4.2016 13:57

Izbacuje mi importError,no dbm clone found.

Riješio problem.Samo sam morao dodati.

from dbm import dumb*

c=dbm.dumb.open(filename)

Dok sam ja stalno otvarao bazu samo s dbm.

c=dbm.open(filename)

 

Bobobo-bo Bo-bobo sri 20.4.2016 22:32
1domagoj1 kaže...
Bobobo-bo Bo-bobo kaže...

... Nedostatak klasa (osim razbacane logike) se već može vidjeti na primjeru PlaviKrug->PlaviKvadrat - kako organizirati hijerarhiju ako mi treba CrveniKrug, CrveniKvadrat, ili oba?

Ne kuzim bas sto zelis reci, mozes li to malo bolje objasniti?

 

Dizajn hijerarhije klasa nije trivijalan kad su atributi ortogonalni, kao u gornjem slučaju s dva neovisna atributa - oblik i boja.

 

U navedenom primjeru program ima klasu PlaviKrug i iz nje izvedenu klasu PlaviKvadrat. Novu klasu CrveniKrug najjednostavnije je izvesti iz klase PlaviKrug, ali se već vidi da nešto ne štima. Podklase PlaviKvadrat i CrveniKrug su neposredno izvedene iz iste klase PlaviKrug, ali su prilično različite.

 

Situacija se komplicira kad zatreba i klasa CrveniKvadrat. Možemo je izvesti iz CrvenogKruga (pa kopirati kod za "kvadrat" iz PlavogKvadrata), ili iz PlavogKvadrata (pa kopirati kod za "crveno" iz CrvenogKruga), ili reorganizirati klase na neki drugi način.

cale pet 22.4.2016 15:03

jos uvijek mucim muku s klasama i objektima i pokusavam doci do kristalne slike. Pokusao sam to shvatiti koristeci se Pojmom. Da li je krivo shvatiti klase kao jedan širi pojam,apstraktniji, a objekte kao niže pojmove koji su samo dio šireg pojma,odnosno oni su ono konkretno klase? Malo filozofski,klasa je samo jedna ideja a objekt je nacin na koji se ona realizira.Ideje "slobode","kapitalizma",itd....., da li bi one bile klase,a objekti kapitalizma bi bili tržišni zakoni ponude i potražnje?

1domagoj1 pet 22.4.2016 19:04
cale kaže...

jos uvijek mucim muku s klasama i objektima i pokusavam doci do kristalne slike. Pokusao sam to shvatiti koristeci se Pojmom. Da li je krivo shvatiti klase kao jedan širi pojam,apstraktniji, a objekte kao niže pojmove koji su samo dio šireg pojma,odnosno oni su ono konkretno klase? Malo filozofski,klasa je samo jedna ideja a objekt je nacin na koji se ona realizira.Ideje "slobode","kapitalizma",itd....., da li bi one bile klase,a objekti kapitalizma bi bili tržišni zakoni ponude i potražnje?

Pa ono, tako nekako.

Najlakse ti je zamisliti klasu kao nacrt, a objekt kao konkretnu realizaciju tog nacrta.

Tipa, imas nacrtan auto na papiru -> klasa, napravis fizicki auto po tom nacrtu -> objekt.