Javascript Constructor + create objects example
//Constructor
function Course(title,instructor,level,published,views){
    this.title = title;
    this.instructor = instructor;
    this.level = level;
    this.published = published;
    this.views = views;
    this.updateViews = function() {
        return ++this.views;
    }
}
//Create Objects
var a = new Course("A title", "A instructor", 1, true, 0);
var b = new Course("B title", "B instructor", 1, true, 123456);
//Log out objects properties and methods
console.log(a.title);  // "A Title"
console.log(b.updateViews()); // "123457"
what is the python equivalent of this? (Constructor function / or class + create object instances + log out properties & methods?)
Is there a difference between self from python and this from Javascript?
Here is a python translation:
class Course:
    def __init__(self,title,instructor,level,published,views)
        self.title = title
        self.instructor = instructor
        self.level = level
        self.published = published
        self.views = views
    def update_views(self):
        return self.views += 1
You must declare a class, then initialize an instance of that class as follows:
course = Course("title","instructor","level","published",0)
Some notable differences are that self is not implicitly available but is actually a required parameter to all methods of the class. However, you should consult  the documentation  on python classes for more information.
As of python3.7, I feel obligated to show that newly introduced dataclasses are the most pythonic way of writing this kind of a class and may be of some help to you future python developers.  
from dataclasses import dataclass
@dataclass
class Course:
     title: str 
     instructor: str 
     level: str 
     published: bool
     views: int 
     def update_views(self) -> int:
         return self.views += 1 
                        There was some errors on the python solution fixed it now
#Constructors
class Course:
    def __init__(self,title,instructor,level,published,views):
        self.propTitle = title
        self.propInstructor = instructor
        self.propLevel = level
        self.propPublished = published
        self.propViews = views
    def update_views(self):
        self.propViews += 1
        return self.propViews
# Create objects
courseA = Course("A title", "A instructor", 1, True, 0)
courseB = Course("B title", "B instructor", 1, True, 123456)
# Print object property and use object method
print(courseA.propTitle)
print(courseB.update_views())
Result print out
A title
123457
Using print(courseB.update_views) outputs this though,<bound method Course.update_views of <__main__.Course object at 0x7f9f79978908>> , use print(courseB.update_views())
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With