Op school zijn we nu bezig met python, ik heb al wel wat ervaring met andere talen, maar heb eigenlijk nog nooit gebruik gemaakt van classes. Nu heb ik dus een klein stukje code wat nog niet helemaal doet wat ik wil.
Ik heb dus 2 classes aangemaakt, een class Atom, en een class Molecule. Nu werkt het aanmaken van een nieuw Atom en een nieuw Molecule prima. Het toevoegen van een Atom aan een Molecule uit de bestaande Atoms werkt ook goed. Ook het teovoegen van een Nieuw Atom aan een Molecule met de Add_new_Atom methode werkt goed. Het enige wat ik nog graag zou willen is dat een Atom die is aangemaakt met deze methode ook word opgeslagen als een Atom ipv alleen in de atom_list van een Molecule.
Nou heeft dat dus met deze regel code te maken:
Nou wil ik dus dat "Name" bijvoorbeeld oxygen wordt en dat hij dus later terug te vinden is onder het commando
Echter werkt het niet als ik er bijvoorbeeld dit van maak:
Dit werkt niet omdat deze bewerking niet mag worden uitgevoerd op een str object.
Hoe kan ik dit wel doen?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| from Tkinter import * class Atom: def __init__(self, AtomName='no name', AtomWeight='no weight'): self.atom_name=AtomName self.atom_weight=AtomWeight class Molecule: def __init__(self, AtomList=[]): self.atom_list=AtomList def Add_New_Atom(self, AtomName, AtomWeight): Name=Atom(AtomName,AtomWeight) self.atom_list.append(Name) def Add_library_Atom(self, Atom): self.atom_list.append(Atom) root=Tk() root.title("Atoms") hydrogen=Atom("hydrogen", "1") list1=[hydrogen] water=Molecule(list1) water.Add_New_Atom("oxygen","16") water.Add_library_Atom(hydrogen) |
Ik heb dus 2 classes aangemaakt, een class Atom, en een class Molecule. Nu werkt het aanmaken van een nieuw Atom en een nieuw Molecule prima. Het toevoegen van een Atom aan een Molecule uit de bestaande Atoms werkt ook goed. Ook het teovoegen van een Nieuw Atom aan een Molecule met de Add_new_Atom methode werkt goed. Het enige wat ik nog graag zou willen is dat een Atom die is aangemaakt met deze methode ook word opgeslagen als een Atom ipv alleen in de atom_list van een Molecule.
Nou heeft dat dus met deze regel code te maken:
code:
1
| Name=Atom(AtomName,AtomWeight) |
Nou wil ik dus dat "Name" bijvoorbeeld oxygen wordt en dat hij dus later terug te vinden is onder het commando
code:
dus een object van de class Atom.1
| oxygen.atom_name |
Echter werkt het niet als ik er bijvoorbeeld dit van maak:
code:
1
| AtomName=Atom(AtomName,AtomWeight) |
Dit werkt niet omdat deze bewerking niet mag worden uitgevoerd op een str object.
Hoe kan ik dit wel doen?