A co teda chceš, aby to řešílo?
Psal jsi
- co metoda, to soubor - OK - ale samozřejmě pokud máš tunu nesmyslných metod, tak z toho plyne tuna nesmyslných souborů a protože počítač není věštec, tak je také někdy musí načíst (a tady mu to stačí jednou pro každý soubor, ať už pak těch class uděláš kolik chceš)
- všechny metody by se volaly mezi sebou přes self - OK
- metody by zůstaly i nadále součástí třídy MyClass - OK
Kód se samozřejmě vykonává v kontextu dané instance třídy (ledaže bys ty metody definoval jako metody nikoli instance, ale přímo té třídy, pak by se vykonávaly samozřejmě přímo v kontextu třídy ).
Takže napiš příklad, jak by sis to asi tak představoval a jak tohle nefunguje, a pak ten příklad můžeme rozebrat a dotvořit.
***********************
MyClass_method_4_python.py:
print("loading MyClass_method_4_python.py")
@classmethod
def MyClass_method_4(klass, a, b, c):
print(klass,a,b,c)
MyClass_method_one_python.py:
print("loading MyClass_method_one_python.py")
def MyClass_method_one(self, a, b, c):
self.method_two(a,b,c)
MyClass_method_two_python.py:
print("loading MyClass_method_two_python.py")
def MyClass_method_two(self, a, b, c):
self.method_three(a,b,c)
MyClass_python.py:
#!/usr/bin/python -u
# vim: fileencoding=utf-8:nomodified:nowrap:textwidth=0:foldmethod=marker:foldcolumn=4:ruler:showcmd:lcs=tab\:|- list:noexpandtab:nosmarttab:softtabstop=0:shiftwidth=0
print("loading MyClass_python.py")
from MyClass_method_one_python import MyClass_method_one
from MyClass_method_two_python import MyClass_method_two
#....
class MyClass:
def __init__(self):
self.method_one(1,2,3)
self.method_two(4,5,6)
def method_one(self, a, b, c):
MyClass_method_one(self, a, b, c)
def method_two(self, a, b, c):
MyClass_method_two(self, a, b, c)
def method_three(self, a, b, c):
print( a, b, c)
#.....
MyClass()
pok2.py:
#!/usr/bin/python -u
# vim: fileencoding=utf-8:nomodified:nowrap:textwidth=0:foldmethod=marker:foldcolumn=4:ruler:showcmd:lcs=tab\:|- list:noexpandtab:nosmarttab:softtabstop=0:shiftwidth=0
print("loading pok2.py")
class MyClass:
def __init__(self):
self.method_one(1,2,3)
self.method_two(4,5,6)
from MyClass_method_one_python import MyClass_method_one as method_one
from MyClass_method_two_python import MyClass_method_two as method_two
def method_three(self, a, b, c):
print( a, b, c)
from MyClass_method_4_python import MyClass_method_4 as class_method_4
MyClass.class_method_4("abra","ka","dabra")
MyClass()
b = MyClass()
c = MyClass()
c.method_one("C", "metoda číslo :", 1 )
b.method_two("B", "metoda číslo :", 2 )
***********************
$ ./MyClass_python.py
loading MyClass_python.py
loading MyClass_method_one_python.py
loading MyClass_method_two_python.py
1 2 3
4 5 6
$ ./pok2.py
loading pok2.py
loading MyClass_method_one_python.py
loading MyClass_method_two_python.py
loading MyClass_method_4_python.py
<class '__main__.MyClass'> abra ka dabra
1 2 3
4 5 6
1 2 3
4 5 6
1 2 3
4 5 6
C metoda číslo : 1
B metoda číslo : 2