# define classclass Dog: pass#ans: create objectmy_dog = Dog()
# constructorclass Dog: def __init__(self, name, age): self.name = name self.age = agedog = Dog("Rex", 3)#ans: dog.name is "Rex"
# access attributesclass Dog: def __init__(self, name): self.name = namedog = Dog("Rex")dog.name#ans: "Rex"dog.name = "Max"#ans: "Max"
# methodsclass Dog: def __init__(self, name): self.name = name def bark(self): return f"{self.name} says Woof!"dog = Dog("Rex")dog.bark()#ans: "Rex says Woof!"
# class variable (shared)class Dog: species = "Canis familiaris" def __init__(self, name): self.name = nameDog.species#ans: "Canis familiaris"Dog("Rex").species#ans: "Canis familiaris"
# what is type?class MyClass: passobj = MyClass()type(obj)#ans: <class 'MyClass'>
# __init__ return?class MyClass: def __init__(self): return 5#ans: TypeError (__init__ must return None)
# self parameter?class MyClass: def method(self): return selfobj = MyClass()obj.method() is obj#ans: True
# class vs instance variable?class MyClass: x = 5obj = MyClass()obj.x#ans: 5 (from class)obj.x = 10obj.x#ans: 10 (instance variable)
# forget self?class MyClass: def method(): passobj = MyClass()obj.method()#ans: TypeError (missing self)
# multiple instances?class Counter: def __init__(self): self.count = 0c1 = Counter()c2 = Counter()c1.count = 5#ans: c2.count is still 0
# class variable modification?class MyClass: x = []obj1 = MyClass()obj2 = MyClass()obj1.x.append(1)#ans: obj2.x is [1] (same list!)
# attribute not found?class MyClass: passobj = MyClass()obj.missing#ans: AttributeError
# isinstance?class MyClass: passobj = MyClass()isinstance(obj, MyClass)#ans: True
# __dict__?class MyClass: def __init__(self): self.x = 5obj = MyClass()obj.__dict__#ans: {'x': 5}
Google tag (gtag.js)