Lập trình hướng đối tượng trong Python
Alex Yarosh
Content Quality Analyst @ DataCamp
self là đối số đầu tiênself.___
class MyClass:
# định nghĩa hàm trong lớp
# đối số đầu tiên là self
def my_method1(self, other_args...):
# xử lý tại đây
def my_method2(self, my_attr):
# tạo thuộc tính bằng phép gán
self.my_attr = my_attr
...
__init__() được gọi mỗi khi một đối tượng được tạo.class Customer: def __init__(self, name): self.name = name # <--- Tạo thuộc tính .name và gán từ tham số name print("The __init__ method was called")cust = Customer("Lara de Silva") #<--- __init__ được gọi ngầm print(cust.name)
The __init__ method was called
Lara de Silva
class Customer: def __init__(self, name, balance): # <-- thêm tham số balanceself.name = name self.balance = balance # <-- thêm thuộc tính balance print("The __init__ method was called")cust = Customer("Lara de Silva", 1000) # <-- __init__ được gọi print(cust.name) print(cust.balance)
The __init__ method was called
Lara de Silva
1000
class Customer: def __init__(self, name, balance=0): #<-- đặt giá trị mặc định cho balanceself.name = name self.balance = balance print("The __init__ method was called")cust = Customer("Lara de Silva") # <-- không truyền balanceprint(cust.name) print(cust.balance) # <-- thuộc tính vẫn được tạo
The __init__ method was called
Lara de Silva
0
class MyClass:
def my_method1(self, attr1):
self.attr1 = attr1
...
def my_method2(self, attr2):
self.attr2 = attr2
...
obj = MyClass()
obj.my_method1(val1) # <-- tạo attr1
obj.my_method2(val2) # <-- tạo attr2
class MyClass: def __init__(self, attr1, attr2): self.attr1 = attr1 self.attr2 = attr2 ...# Tất cả thuộc tính được tạo obj = MyClass(val1, val2)
__init__()__init__()CamelCase cho lớp, lower_snake_case cho hàm và thuộc tính
__init__()CamelCase cho lớp, lower_snake_case cho hàm và thuộc tính
self là selfclass MyClass:
# Làm được nhưng không khuyến nghị
def my_method(kitty, attr):
kitty.attr = attr
__init__()CamelCase cho lớp, lower_snake_case cho hàm và thuộc tính
self là selfclass MyClass:
"""Lớp này không làm gì"""
pass
Lập trình hướng đối tượng trong Python