13.2. OOP Class Instance¶
Definition: instance - object created from class
Instances are objects
Convention:
snake_case
namesConvention: Two newlines between class and instances
13.2.1. Class vs Instance¶


13.2.2. One Class, One Instance¶
One class and one instance:
>>> class User:
... pass
...
>>> mark = User()
13.2.3. One Class, Many Instances¶
One class and three instances:
>>> class User:
... pass
>>>
>>>
>>> mark = User()
>>> melissa = User()
>>> rick = User()
13.2.4. Many Classes, Many Instances¶
Two classes and six instances. One instance of an Admin
class, and
five instances of User
class:
>>> class User:
... pass
...
>>> class Admin:
... pass
...
>>>
>>> melissa = Admin()
>>> mark = User()
>>> rick = User()
>>> alex = User()
>>> beth = User()
>>> chris = User()
13.2.5. Naming Convention¶
>>> first_name = str()
>>> last_name = str()
>>>
>>> firstname = str()
>>> lastname = str()
>>>
>>> fname = str()
>>> lname = str()
>>> class User:
... pass
...
>>>
>>> mark_watney = User()
>>> melissa_lewis = User()
>>>
>>> markwatney = User()
>>> melissalewis = User()
>>>
>>> mwatney = User()
>>> mlewis = User()
13.2.6. Type vs Isinstance¶
>>> class User:
... pass
>>>
>>> mark = User()
>>> isinstance(mark, User)
True
>>> type(mark)
<class '__main__.User'>
>>> type(mark) is User
True
>>>
>>> mark is User
False
13.2.7. Use Case - 0x01¶
>>> x = int()
>>> y = int()
>>>
>>> x
0
>>> y
0
>>> class Int:
... pass
...
>>> x = Int()
>>> y = Int()
13.2.8. Use Case - 0x02¶
>>> x = int()
>>> y = float()
>>>
>>> x
0
>>> y
0.0
>>> class Int:
... pass
...
>>> class Float:
... pass
...
>>> x = int()
>>> y = float()
13.2.9. Use Case - 0x03¶
>>> a = int()
>>> b = float()
>>> c = bool()
>>> d = str()
>>> e = list()
>>> f = tuple()
>>> g = set()
>>> h = dict()
13.2.10. Use Case - 0x04¶
>>> class Astronaut:
... pass
>>>
>>>
>>> mark = Astronaut()
>>> melissa = Astronaut()
>>> rick = Astronaut()
>>> alex = Astronaut()
>>> beth = Astronaut()
>>> chris = Astronaut()
13.2.11. Use Case - 0x05¶
>>> class AstronautPilot:
... pass
...
>>> class AstronautScientist:
... pass
...
>>> class AstronautEngineer:
... pass
...
>>> class AstronautMedic:
... pass
>>>
>>>
>>>
>>> mark_watney = AstronautScientist()
>>> melissa_lewis = AstronautEngineer()
>>> rick_martinez = AstronautPilot()
>>> alex_vogel = AstronautScientist()
>>> beth_johanssen = AstronautEngineer()
>>> chris_beck = AstronautMedic()
13.2.12. References¶
13.2.13. Assignments¶
"""
* Assignment: OOP Class Iris
* Required: yes
* Complexity: easy
* Lines of code: 3 lines
* Time: 2 min
English:
1. Create instance `setosa` of a class `Iris`
2. Create instance `virginica` of a class `Iris`
3. Create instance `versicolor` of a class `Iris`
4. Run doctests - all must succeed
Polish:
1. Stwórz instancję `setosa` klasy `Iris`
2. Stwórz instancję `virginica` klasy `Iris`
3. Stwórz instancję `versicolor` klasy `Iris`
4. Uruchom doctesty - wszystkie muszą się powieść
Tests:
>>> import sys; sys.tracebacklimit = 0
>>> from inspect import isclass
>>> assert isclass(Iris)
>>> assert isinstance(setosa, Iris)
>>> assert isinstance(versicolor, Iris)
>>> assert isinstance(virginica, Iris)
"""
class Iris:
pass
"""
* Assignment: OOP Class Instance
* Required: yes
* Complexity: easy
* Lines of code: 2 lines
* Time: 2 min
English:
1. Define class `Astronaut`
2. Define class `SpaceAgency`
3. Create instance `watney` of a class `Astronaut`
4. Create instance `nasa` of a class `SpaceAgency`
5. Run doctests - all must succeed
Polish:
1. Zdefiniuj klasę `Astronaut`
2. Zdefiniuj klasę `SpaceAgency`
3. Stwórz instancję `watney` klasy `Astronaut`
4. Stwórz instancję `nasa` klasy `SpaceAgency`
5. Uruchom doctesty - wszystkie muszą się powieść
Tests:
>>> import sys; sys.tracebacklimit = 0
>>> from inspect import isclass
>>> assert isclass(Astronaut)
>>> assert isclass(SpaceAgency)
>>> assert isinstance(watney, Astronaut)
>>> assert isinstance(nasa, SpaceAgency)
"""
class Astronaut:
pass
class SpaceAgency:
pass