Git Product home page Git Product logo

dsc-1-07-03-object-initialization's Introduction

Object Initialization

Introduction

Now that we've begun to see OOP and class structures, we're going to investigate the init method more. The init method allows classes to have default behaviors and attributes.

Objectives

You will be able to:

  • Define custom init methods for object initialization
  • Create instance variables in the init method
  • Use default arguments in the init method

Introducing init

By using the __init__ method, we can initialize instances of objects with defined attributes. Without this, attributes are not defined until other methods are called that would populate these fields. trying to call an attribute of a class will produce an error. For example, imagine a person class with methods to set_name and set_job:

class Person:
    def set_name(self, name):
        self.name = name
    def set_job(self, job):
        self.job = job
bob = Person()

If we try to access an attribute before setting it we'll get an error.

bob.name
bob.set_name('Bob')
bob.name

Using the init method allows us to set attributes on instantiation.

class Person:
    def __init__(self, name, job):
        self.name = name
        self.job = job
bob = Person('Bob', 'Carpenter')
print(bob.name)
print(bob.job)

Written like this, these arguments then become required:

someone = Person()

Setting default arguments in the init method

To circumvent this, we can also define init to have default arguments. This allows parameters to be specified if desired but are not required.

class Person:
    def __init__(self, name=None, job=None):
        self.name = name
        self.job = job
someone = Person()
print(someone.name)
print(someone.job)

print('\n')
governer = Person(job = 'Carpenter')
print(governer.name)
print(governer.job)

print('\n')
bob = Person('Bob', 'Carpenter')
print(bob.name)
print(bob.job)

Summary

In this lesson you got a brief introduction to the init method and how you can use it to set attributes when objects are initialized, including default parameters.

dsc-1-07-03-object-initialization's People

Contributors

loredirick avatar mathymitchell avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dsc-1-07-03-object-initialization's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.