Cách cập nhật biến trong Python

Một mẫu phổ biến trong các câu lệnh gán là một câu lệnh gán cập nhật một biến, trong đó giá trị mới của biến phụ thuộc vào giá trị cũ của biến

Là một phương trình toán học, điều này không có nhiều ý nghĩa (trừ khi x là \(\infty\)), nhưng điều này hiệu quả trong lập trình vì. Theo , trước tiên máy tính sẽ đánh giá biểu thức ở bên phải, x + 1, rồi gán giá trị đó cho x. Vì vậy, câu lệnh có nghĩa là “lấy giá trị hiện tại của x, thêm 1 vào đó, sau đó cập nhật x với giá trị mới. ”

Nếu x chưa tồn tại và không có giá trị, câu lệnh này sẽ báo lỗi cho bạn. Python sẽ đánh giá phía bên phải và không thể tiếp tục. Thử cái này

Cái gì còn thiếu?

Cập nhật một biến bằng cách cộng hoặc trừ 1 là điều rất phổ biến trong lập trình và vì vậy những cập nhật đó có tên đặc biệt

Sự định nghĩa

Cập nhật một biến bằng cách thêm 1 được gọi là tăng và trừ 1 được gọi là giảm

Kiểm tra việc hiểu của bạn

Q-1. Nếu mỗi dòng mã sau đây được chạy nối tiếp nhau, thì giá trị của x sau mỗi dòng sẽ là bao nhiêu?

Thay đổi nội dung của biến là một trong những thao tác cần thiết. Khi tiến trình của chương trình diễn ra, dữ liệu phải được cập nhật để phản ánh những thay đổi đã xảy ra

fish_in_clarks_pond = 50 print "Catching fish" number_of_fish_caught = 10 fish_in_clarks_pond = fish_in_clarks_pond - number_of_fish_caught

Trong ví dụ trên, chúng tôi bắt đầu với 50 con cá trong ao địa phương. Sau khi bắt được 10 con cá, ta cập nhật số cá trong ao bằng số cá ban đầu trong ao trừ đi số cá bắt được. Ở cuối khối mã này, biến fish_in_clarks_pond bằng 40

Cập nhật một biến bằng cách cộng hoặc trừ một số về giá trị ban đầu của nó là một nhiệm vụ phổ biến đến mức nó có cách viết tắt riêng để làm cho nó nhanh hơn và dễ đọc hơn

money_in_wallet = 40 sandwich_price = 7.50 sales_tax = .08 * sandwich_price sandwich_price += sales_tax money_in_wallet -= sandwich_price

Trong ví dụ trên, chúng tôi sử dụng giá của một chiếc bánh sandwich để tính thuế bán hàng. Sau khi tính thuế, chúng tôi thêm nó vào tổng giá của bánh sandwich. Cuối cùng, chúng tôi hoàn thành giao dịch bằng cách giảm money_in_wallet của chúng tôi bằng chi phí của chiếc bánh sandwich (có thuế)

Các biến lớp được chia sẻ bởi tất cả các phiên bản và có thể được cập nhật trực tiếp trên lớp hoặc trong một phương thức lớp

Lớp có một biến lớp cls_id và các biến thực thể namesalary

Các biến lớp được chia sẻ bởi tất cả các phiên bản và có thể được truy cập trực tiếp trên lớp, e. g. Employee.cls_id

Các biến thể hiện là duy nhất cho mỗi thể hiện mà bạn tạo bằng cách khởi tạo lớp

Chúng tôi đã sử dụng một phương thức lớp để cập nhật biến cls_id

@classmethod
def set_cls_id(cls, new_cls_id):
    cls.cls_id = new_cls_id
    return cls.cls_id

Các phương thức lớp được chuyển qua lớp làm đối số đầu tiên

Lưu ý rằng bạn cũng có thể đặt các biến lớp trực tiếp trên lớp, e. g. Employee.cls_id = new_cls_id

Các biến lớp được chia sẻ bởi tất cả các phiên bản của lớp, trong khi các biến thể hiện là duy nhất cho mỗi phiên bản

Bạn sẽ thường xuyên phải cập nhật các biến đối tượng trong lớp hơn. Đây là một ví dụ

Cập nhật một biến thể hiện không cập nhật thuộc tính cho các thể hiện khác

Mặt khác, khi bạn cập nhật một biến lớp, giá trị sẽ được cập nhật cho tất cả các phiên bản

Cập nhật biến lớp cls_id được phản ánh trong tất cả các phiên bản

Bạn có thể sử dụng lớp type() nếu bạn cần truy cập một biến lớp từ một thể hiện của lớp

Thể hiện ghi đè biến cls_id, vì vậy để truy cập biến lớp thực tế, chúng ta phải sử dụng lớp type()

Lớp trả về loại đối tượng

Thông thường, giá trị trả về giống với việc truy cập thuộc tính Employee.cls_variable = new_value2 trên đối tượng

Đoạn mã sau sử dụng thuộc tính Employee.cls_variable = new_value2 và đạt được kết quả tương tự

Truy cập các biến Lớp trong Python

Truy cập các biến lớp trực tiếp trên lớp, e. g. Employee.cls_variable = new_value4. Các biến lớp được chia sẻ bởi tất cả các trường hợp

Bạn có thể truy cập các biến thể hiện bằng cách sử dụng đối tượng Employee.cls_variable = new_value5, e. g. Employee.cls_variable = new_value6. Các biến thể hiện là duy nhất cho mỗi thể hiện

Lớp có một biến lớp cls_id và các biến thực thể namesalary

Các biến lớp được chia sẻ bởi tất cả các phiên bản và có thể được truy cập trực tiếp trên lớp, e. g. Employee.cls_id

Các biến thể hiện là duy nhất cho mỗi thể hiện mà bạn tạo bằng cách khởi tạo lớp

Bạn cũng có thể truy cập các biến lớp bằng cách định nghĩa một phương thức lớp

Chúng tôi đã đánh dấu phương thức cls_id1 là một phương thức lớp. Các phương thức lớp đối số đầu tiên được thông qua là lớp

Các phương thức thông thường được truyền một đối tượng Employee.cls_variable = new_value5 cung cấp cho chúng ta một tham chiếu đến thể hiện

Các biến đối tượng namesalary là duy nhất cho mỗi đối tượng, nhưng các đối tượng chia sẻ cùng một biến lớp cls_id

Bạn có thể sử dụng lớp type() nếu bạn cần truy cập một biến lớp từ một thể hiện của lớp

Thể hiện ghi đè biến cls_id, vì vậy để truy cập biến lớp thực tế, chúng ta phải sử dụng lớp type()

Lớp trả về loại đối tượng

Thông thường, giá trị trả về giống với việc truy cập thuộc tính Employee.cls_variable = new_value2 trên đối tượng

Đoạn mã sau sử dụng thuộc tính Employee.cls_variable = new_value2 và đạt được kết quả tương tự

Bạn chọn cách tiếp cận nào là vấn đề sở thích cá nhân

Lớp type() thanh lịch hơn vì chúng ta không phải truy cập các thuộc tính có tiền tố là hai dấu gạch dưới, nhưng thuộc tính Employee.cls_variable = new_value2 thì rõ ràng hơn

Bạn có thể sửa đổi một biến trong Python không?

Một số giá trị trong python có thể sửa đổi được, còn một số thì không . Điều này không có nghĩa là chúng ta không thể thay đổi giá trị của một biến – nhưng nếu một biến chứa giá trị thuộc loại bất biến, chúng ta chỉ có thể gán cho nó một giá trị mới. Chúng tôi không thể thay đổi giá trị hiện tại theo bất kỳ cách nào.

Đó là những cách hợp lệ để cập nhật một biến?

Cập nhật biến bằng cách thêm 1 được gọi là gia số; . Đôi khi các lập trình viên cũng nói về việc tăng một biến, điều đó có nghĩa giống như việc tăng nó lên 1.

+= trong Python là gì?

Toán tử cộng-bằng += cung cấp một cách thuận tiện để thêm giá trị vào một biến hiện có và gán lại giá trị mới cho cùng một biến. In the case where the variable and the value are strings, this operator performs string concatenation instead of addition.