Giải phẫu lớp: thuộc tính và phương thức

Nhập môn Lập trình Hướng đối tượng với Python

George Boorman

Curriculum Manager, DataCamp

Một lớp Khách hàng

class Customer:

# Code for class goes here
pass
  • class <name>: bắt đầu định nghĩa lớp
  • Mã bên trong class được thụt lề
  • Dùng pass để tạo một lớp "trống"
c_one = Customer()
c_two = Customer()
  • Dùng ClassName() để tạo một đối tượng của lớp ClassName
Nhập môn Lập trình Hướng đối tượng với Python

Thêm phương thức vào một lớp

class Customer:  

def identify(self, name): print("I am Customer " + name)
  • Định nghĩa phương thức = định nghĩa hàm trong lớp
  • Sử dụng self làm đối số đầu tiên trong định nghĩa phương thức
cust = Customer()
cust.identify("Laura")
I am Customer Laura
  • Bỏ qua self khi gọi một phương thức trên một đối tượng
Nhập môn Lập trình Hướng đối tượng với Python
class Customer:  
    def identify(self, name):
        print("I am Customer " + name)

cust = Customer()
cust.identify("Laura")

Tự là gì?

  • Lớp học là các mẫu
  • self phải là đối số đầu tiên của bất kỳ phương thức nào
  • self là đại diện cho một đối tượng (chưa được tạo)
  • cust.identify("Laura") sẽ được hiểu là Customer.identify(cust, "Laura")
Nhập môn Lập trình Hướng đối tượng với Python

Chúng ta cần các thuộc tính

  • OOP đóng gói dữ liệu cùng các phương thức thao tác trên dữ liệu
    • Customer's' name nên là một thuộc tính

$$\text{\Large{Các thuộc tính được tạo bằng phép gán (=) trong các phương thức}}$$

Nhập môn Lập trình Hướng đối tượng với Python

Thêm thuộc tính vào lớp

class Customer:  
    # Set the name attribute of an object to new_name
    def set_name(self, new_name):

# Create an attribute by assigning a value # Will create .name when set_name is called self.name = new_name
# Create an object # .name doesn't exist here yet cust = Customer()
# .name is created and set to "Lara de Silva" cust.set_name("Lara de Silva")
print(cust.name)
Lara de Silva
Nhập môn Lập trình Hướng đối tượng với Python

Phiên bản cũ

class Customer:  



    # Using a parameter
    def identify(self, name):
        print("I am Customer" + name)
cust = Customer()

cust.identify("Eris Odoro") 
I am Customer Eris Odoro 

Phiên bản mới

class Customer:  
   def set_name(self, new_name):
       self.name = new_name

# Using .name from the object it*self* def identify(self): print("I am Customer" + self.name)
cust = Customer()
cust.set_name("Rashid Volkov")
cust.identify()
I am Customer Rashid Volkov
Nhập môn Lập trình Hướng đối tượng với Python

Hãy luyện tập!

Nhập môn Lập trình Hướng đối tượng với Python

Preparing Video For Download...