Thread View: pl.comp.lang.python
7 messages
7 total messages
Started by pr
Sun, 14 Mar 2010 12:06
Przestrzeń nazw (?)
Author: pr
Date: Sun, 14 Mar 2010 12:06
Date: Sun, 14 Mar 2010 12:06
17 lines
1276 bytes
1276 bytes
Witam,
Czy w Pythonie (3.1) można zrobić coś takiego (jeden plik):
class A:
class AA:
obj = B()
class B:
class BB:
obj = A()
A()
B()
?
Re: Przestrzeń nazw (?)
Author: Jordan Szubert
Date: Sun, 14 Mar 2010 13:04
Date: Sun, 14 Mar 2010 13:04
41 lines
1867 bytes
1867 bytes
Dnia 14-03-2010 o 13:06:00 pr <cricogik@gmail.com> napisał(a): > Witam, > > Czy w Pythonie (3.1) można zrobić coś takiego (jeden plik): > > class A: > class AA: > obj = B() > > > class B: > class BB: > obj = A() > > A() > B() > > ? Python 3.1.1 (r311:74483, Aug 17 2009, 17:02:12) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> class A: ... class AA: ... obj=None ... >>> class B: ... class BB: ... obj=A() ... >>> A.AA.obj=B() >>> a=A() >>> b=B() >>> -- Używam klienta poczty Opera Mail: http://www.opera.com/mail/
Re: Przestrzeń nazw (?)
Author: pr
Date: Sun, 14 Mar 2010 14:23
Date: Sun, 14 Mar 2010 14:23
26 lines
1904 bytes
1904 bytes
On 14 Mar, 14:04, "Jordan Szubert" <n...@podam.na.razie> wrote: > Python 3.1.1 (r311:74483, Aug 17 2009, 17:02:12) [MSC v.1500 32 bit > (Intel)] on win32 > Type "help", "copyright", "credits" or "license" for more information.>>> class A: > > ... class AA: > ... obj=None > ...>>> class B: > > ... class BB: > ... obj=A() > ... > > >>> A.AA.obj=B() > >>> a=A() > >>> b=B() Tak, wiem, że tak można zrobić, aczkolwiek chce tego uniknąć.. myślałem, że może jest jakiś sposób np. poprzez bardziej skomplikowane użycie modułów.. Np przed obj = B() wywołać: import obecny_modul obj = obecny_modul.B() Tylko coś mi to na py3.1 nie do końca działa..
Re: Przestrzeń nazw (?)
Author: Łukasz Rekucki
Date: Sun, 14 Mar 2010 15:46
Date: Sun, 14 Mar 2010 15:46
39 lines
2756 bytes
2756 bytes
On 14 Mar, 15:23, pr <crico...@gmail.com> wrote:
> On 14 Mar, 14:04, "Jordan Szubert" <n...@podam.na.razie> wrote:
>
> > Python 3.1.1 (r311:74483, Aug 17 2009, 17:02:12) [MSC v.1500 32 bit
> > (Intel)] on win32
> > Type "help", "copyright", "credits" or "license" for more information.>>> class A:
>
> > ... class AA:
> > ... obj=None
> > ...>>> class B:
>
> > ... class BB:
> > ... obj=A()
> > ...
>
> > >>> A.AA.obj=B()
> > >>> a=A()
> > >>> b=B()
>
> Tak, wiem, że tak można zrobić, aczkolwiek chce tego uniknąć..
> myślałem, że może jest jakiś sposób np. poprzez bardziej skomplikowane
> użycie modułów..
>
> Np przed obj = B() wywołać:
> import obecny_modul
> obj = obecny_modul.B()
>
> Tylko coś mi to na py3.1 nie do końca działa..
To tak jakbyś oczekiwał, że
print n
n = 42
wypisywało 42. Dopóki nie stworzysz tej klasy, to nie możesz użyć jej
metody. "class" jest taką samą instrukcją, a nie deklaracją jak
"def". Importowanie modułów nic tu nie zmieni, bo w jeśli w trakcie
inicjalizacji modułu, zaimportujesz go, to widzisz tylko to co już
zostało wykonane (co jest dość logiczne).
Re: Przestrzeń nazw (?)
Author: Bart Ogryczak
Date: Mon, 15 Mar 2010 09:54
Date: Mon, 15 Mar 2010 09:54
20 lines
1641 bytes
1641 bytes
On Mar 14, 1:06 pm, pr <crico...@gmail.com> wrote: > Witam, > > Czy w Pythonie (3.1) można zrobić coś takiego (jeden plik): > > class A: > class AA: > obj = B() > > class B: > class BB: > obj = A() > > A() > B() > > ? Już pare razy tu o tym było -- jeśli czegoś takiego potrzebujesz, to znaczy, że masz spitolony model.
Re: Przestrzeń nazw (?)
Author: pakalk
Date: Sun, 21 Mar 2010 19:12
Date: Sun, 21 Mar 2010 19:12
40 lines
1837 bytes
1837 bytes
On 14 Mar, 13:06, pr <crico...@gmail.com> wrote:
> Witam,
>
> Czy w Pythonie (3.1) można zrobić coś takiego (jeden plik):
>
> class A:
> class AA:
> obj = B()
>
> class B:
> class BB:
> obj = A()
>
> A()
> B()
>
> ?
Nie wdając się w to, czy to co robisz ma sens... tak nie może być:
class A:
class AA:
o = None
def __init__(self):
self.o = B()
class B:
class BB:
o = None
def __init__(self):
self.o = A()
a = A()
b = B()
?
Re: Przestrzeń nazw (?)
Author: wysek
Date: Mon, 22 Mar 2010 08:24
Date: Mon, 22 Mar 2010 08:24
46 lines
2011 bytes
2011 bytes
On 15 Mar, 10:54, Bart Ogryczak <b.ogryc...@gmail.com> wrote:
> On Mar 14, 1:06 pm, pr <crico...@gmail.com> wrote:
>
>
>
> > Witam,
>
> > Czy w Pythonie (3.1) można zrobić coś takiego (jeden plik):
>
> > class A:
> > class AA:
> > obj = B()
>
> > class B:
> > class BB:
> > obj = A()
>
> > A()
> > B()
>
> > ?
>
> Już pare razy tu o tym było -- jeśli czegoś takiego potrzebujesz, to
> znaczy, że masz spitolony model.
Czy ja wiem, czasami sie takie cos przydaje.
Nie znam sie, ale czy nie ma na to czasem jakiegos wzorca?;)
class A:
B = None
def b(self):
return A.B()
class B:
A = None
def a(self):
return B.A()
A.B = B
B.A = A
#####
A().b()
B().a()
A().b().a().b()
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads