Adding Classes to a Package

Software Engineering Principles in Python

Adam Spannbauer

Machine Learning Engineer at Eastman

Object oriented programming

OOP Modularity

Software Engineering Principles in Python

Anatomy of a class

working in work_dir/my_package/my_class.py

# Define a minimal class with an attribute
class MyClass:

"""A minimal example class :param value: value to set as the ``attribute`` attribute :ivar attribute: contains the contents of ``value`` passed in init """
# Method to create a new instance of MyClass def __init__(self, value): # Define attribute with the contents of the value param self.attribute = value
Software Engineering Principles in Python

Using a class in a package

working in work_dir/my_package/__init__.py

from .my_class import MyClass

working in work_dir/my_script.py

import my_package

# Create instance of MyClass
my_instance = my_package.MyClass(value='class attribute value')

# Print out class attribute value
print(my_instance.attribute)
'class attribute value'
Software Engineering Principles in Python

The self convention

working in work_dir/my_package/my_class.py

# Define a minimal class with an attribute
class MyClass:
    """A minimal example class

    :param value: value to set as the ``attribute`` attribute
    :ivar attribute: contains the contents of ``value`` passed in init
    """

    # Method to create a new instance of MyClass
    def __init__(self, value):
        # Define attribute with the contents of the value param
        self.attribute = value
my_instance = my_package.MyClass(value='class attribute value')
Software Engineering Principles in Python

Let's Practice

Software Engineering Principles in Python

Preparing Video For Download...