Skip to content

Fixed typos and improved Python scripts #96

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 21 additions & 37 deletions src/classes/test_class_objects.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
object to a variable. The created object would have instance attributes associated with it.
"""


def test_class_objects():
"""Class Objects.

Expand All @@ -15,16 +14,13 @@ def test_class_objects():
- instantiation.
"""

# ATTRIBUTE REFERENCES use the standard syntax used for all attribute references in
# Python: obj.name. Valid attribute names are all the names that were in the class’s namespace
# when the class object was created. For class MyCounter the following references are valid
# attribute references:

class ComplexNumber:
"""Example of the complex numbers class"""
"""Example of a complex number class"""

real = 0
imaginary = 0
def __init__(self, real=0, imaginary=0):
"""Initialize complex number with default values."""
self.real = real
self.imaginary = imaginary

def get_real(self):
"""Return real part of complex number."""
Expand All @@ -34,45 +30,33 @@ def get_imaginary(self):
"""Return imaginary part of complex number."""
return self.imaginary

assert ComplexNumber.real == 0
assert ComplexNumber(0, 0).real == 0

# __doc__ is also a valid attribute, returning the docstring belonging to the class
assert ComplexNumber.__doc__ == 'Example of the complex numbers class'
assert ComplexNumber.__doc__ == "Example of a complex number class"

# Class attributes can also be assigned to, so you can change the value of
# ComplexNumber.counter by assignment.
# Class attributes can be changed dynamically
ComplexNumber.real = 10
assert ComplexNumber.real == 10

# CLASS INSTANTIATION uses function notation. Just pretend that the class object is a
# parameterless function that returns a new instance of the class. For example
# (assuming the above class):
complex_number = ComplexNumber()
# Creating an instance
complex_number = ComplexNumber(10, -5)

assert complex_number.real == 10
assert complex_number.get_real() == 10

# Let's change counter default value back.
ComplexNumber.real = 10
assert ComplexNumber.real == 10
# Reset real value to default
ComplexNumber.real = 0
assert ComplexNumber.real == 0

# The instantiation operation (“calling” a class object) creates an empty object. Many classes
# like to create objects with instances customized to a specific initial state. Therefore a
# class may define a special method named __init__(), like this:
# Using constructor-based initialization
class ComplexNumberWithConstructor(ComplexNumber):
"""Example of a complex number class with constructor"""

class ComplexNumberWithConstructor:
"""Example of the class with constructor"""
def __init__(self, real_part, imaginary_part):
self.real = real_part
self.imaginary = imaginary_part

def get_real(self):
"""Return real part of complex number."""
return self.real

def get_imaginary(self):
"""Return imaginary part of complex number."""
return self.imaginary
def __init__(self, real, imaginary):
super().__init__(real, imaginary) # Use super() to inherit from ComplexNumber

complex_number = ComplexNumberWithConstructor(3.0, -4.5)
assert complex_number.real, complex_number.imaginary == (3.0, -4.5)

# ✅ Fixed the assertion syntax here
assert (complex_number.real, complex_number.imaginary) == (3.0, -4.5)