Các số có phải là một đối tượng trong python không?

Bây giờ là lúc để nói về một trong những ngôn ngữ được sử dụng nhiều nhất trong lập trình và cũng là một trong những ngôn ngữ dễ học nhất do cú pháp đơn giản của nó. Nội dung của bài đăng này mang tính kỹ thuật, vì tôi sẽ chia sẻ cách thức hoạt động của ngôn ngữ này. Sự phổ biến của Python không chỉ do cú pháp đơn giản của nó mà còn do khả năng sử dụng vô cùng đa dạng của nó, có rất nhiều mô-đun được tạo để hoạt động trong bất kỳ lĩnh vực phát triển nào mà bạn có thể tưởng tượng, thậm chí cả trò chơi điện tử

Giới thiệu ngắn gọn về mô hình hướng đối tượng trong Python

Để bắt đầu, Python là ngôn ngữ lập trình hướng đối tượng [OOP], nghĩa là toàn bộ cấu trúc của nó xoay quanh mô hình hướng đối tượng. Mô hình này dựa trên khái niệm “đối tượng”, có thể chứa dữ liệu và chức năng. dữ liệu ở dạng trường [thường được gọi là thuộc tính hoặc thuộc tính] và hàm, ở dạng thủ tục [thường được gọi là phương thức]. Các chương trình được thực hiện theo mô hình này được thiết kế bằng cách biến chúng thành các đối tượng tương tác với nhau. Nhiều ngôn ngữ khác ngoài python sử dụng chúng. Vì vậy, điều khiến python nổi bật so với các ngôn ngữ khác là mọi thứ đều được coi là một đối tượng. Mỗi loại dữ liệu mà chúng tôi yêu cầu không gian bộ nhớ là một đối tượng. Vâng, nghe có vẻ lạ, nhưng ngay cả một số nguyên cũng được coi là một đối tượng đối với trình thông dịch python

Các đối tượng trong Python

Một đối tượng thường được tạo để có các phương thức có thể sửa đổi các trường dữ liệu của chính nó [trong python, điều này có thể thực hiện được bằng cách sử dụng “self”]. Điều này mang lại cho người dùng khả năng thao tác với các đối tượng khi cần thiết. Python là ngôn ngữ OOP dựa trên lớp, có nghĩa là các đối tượng là thể hiện của các lớp, cũng xác định loại của chúng

Trong Python để tạo một đối tượng, chúng ta cần tạo một lớp để đối tượng của chúng ta có thể được khởi tạo từ nó. Chúng ta có thể coi một lớp như một khuôn mẫu cho các đối tượng có đặc điểm giống nhau, các đối tượng sẽ kế thừa chúng. Khi chúng ta đã khai báo lớp của mình, chúng ta có thể khởi tạo một đối tượng từ nó. Trong python, các đối tượng được coi là một sự trừu tượng hóa dữ liệu. Tất cả dữ liệu trong chương trình Python được biểu diễn bằng các đối tượng hoặc bằng các mối quan hệ giữa chúng

Mỗi đối tượng có một danh tính, một loại và một giá trị. Danh tính của một đối tượng không bao giờ thay đổi khi nó đã được tạo; . để so sánh danh tính của hai đối tượng, chúng tôi sử dụng toán tử 'is' và hàm id '[]' để lấy số nguyên biểu thị danh tính

Loại đối tượng xác định các hoạt động mà đối tượng hỗ trợ [e. g. , "nó có độ dài không?"] và cũng xác định các giá trị có thể có cho các đối tượng thuộc loại đó. Hàm ‘type[]’ trả về kiểu của một đối tượng [chính nó là một đối tượng]. Giống như danh tính của nó, loại đối tượng cũng không thể thay đổi. Kiểu của nó được xác định bởi lớp mà đối tượng kế thừa. Ví dụ, lớp của đối tượng sẽ là str, int [hoặc một lớp phức tạp hơn nhiều mà chúng ta tạo ra], trong khi id sẽ cung cấp cho chúng ta địa chỉ trong bộ nhớ của vị trí của đối tượng

Các đối tượng có thể thay đổi và không thể thay đổi

Giá trị của một đối tượng hoạt động hơi khác một chút. Giá trị của một số đối tượng có thể thay đổi và những đối tượng khác thì không. Các đối tượng có giá trị có thể thay đổi được đặt tên là có thể thay đổi; . khả năng biến đổi này được xác định bởi loại của nó. Số, chuỗi và bộ dữ liệu là bất biến trong khi danh sách, từ điển và bộ có thể thay đổi

Đối với hai loại cuối cùng, loại chúng ta có thể đặt, bỏ đặt và sửa đổi các giá trị của nó một cách tự do nhưng nếu chúng ta cố gắng thực hiện nó trên những loại không thay đổi thì trình thông dịch sẽ báo lỗi

Chúng ta có thể định nghĩa một danh sách bằng cách sử dụng dấu ngoặc vuông '[ ]' như thế này. số = [1, 2, 3]. Để định nghĩa một tuple, chúng ta chỉ cần thay dấu ngoặc đơn bằng dấu ngoặc đơn ‘[ ]’ như thế này. số = [1, 2, 3]. Trong cả hai loại dữ liệu, chúng ta có thể truy cập các phần tử theo chỉ mục và chúng ta có thể lặp lại chúng. Sự khác biệt chính là một bộ không thể thay đổi sau khi nó được xác định

Tuy nhiên, nếu chúng ta muốn mở rộng hai loại dữ liệu này, chúng ta có thể thực hiện với cả hai. Nhưng một điều hơi khác sẽ xảy ra. Để làm điều này, chúng tôi sử dụng toán tử '+='. Hãy xem ví dụ này trong các hình ảnh bên dưới, 'x' là một danh sách và 'y' là một bộ. Chúng tôi bắt đầu xác định chúng, và sau đó chúng tôi mở rộng giá trị của chúng. Nếu chúng ta đặc biệt chú ý đến số id, chúng ta có thể thấy rằng khi chúng ta gán giá trị mới cho bộ dữ liệu, số id sẽ thay đổi. Bây giờ tuple là một đối tượng khác do tính bất biến của nó

Điều tương tự cũng xảy ra khi chúng ta cố gắng thay đổi giá trị của các loại đối tượng bất biến khác, chẳng hạn như số [int và float] và chuỗi. Số id của nó sẽ thay đổi, nó sẽ là một đối tượng khác nhưng nó vẫn sẽ trỏ đến cùng một giá trị. Python được xây dựng bằng C, vì vậy việc xử lý dữ liệu cấp thấp này hoạt động giống như xử lý các con trỏ, tuy nhiên, python thực hiện tất cả công việc cho chúng tôi. Khi chúng ta thay đổi một giá trị của một đối tượng bất biến, một đối tượng mới bắt đầu trỏ đến giá trị này. Đó là lý do tại sao giá trị của nó không thay đổi trong khi id đối tượng của nó thì không

Đối số hàm bất biến Python

Bây giờ, hãy chỉ định cách Python xử lý loại dữ liệu này khi chúng được chuyển thành đối số cho hàm. Các đối tượng bất biến được truyền theo tham chiếu giống như các đối tượng có thể thay đổi

Một chức năng sẽ không hữu ích nếu chúng ta truyền một đối số mà chúng ta không thể thay đổi bên trong, vì vậy đây là nơi điều kỳ diệu xảy ra. Do trạng thái của các đối tượng bất biến [không thể thay đổi], nếu một giá trị số nguyên hoặc chuỗi bị thay đổi bên trong khối chức năng thì nó sẽ hoạt động giống như một đối tượng sao chép. Một bản sao trùng lặp mới cục bộ của đối tượng người gọi bên trong phạm vi khối chức năng được tạo để thao tác bên trong chức năng. Đối tượng người gọi sẽ không thay đổi. Do đó, khối người gọi sẽ không nhận thấy bất kỳ thay đổi nào được thực hiện bên trong phạm vi khối chức năng đối với đối tượng bất biến. Nó sẽ rõ ràng hơn trong ví dụ dưới đây

  • Số nguyên đối tượng ban đầu 'x' [không thay đổi] được truyền cho hàm 'f_arg[]'
  • Một bản sao cục bộ mới ['a'] của 'x' được tạo để sử dụng trong hàm được gọi. Vì số nguyên là đối tượng bất biến và không thể thay đổi nên hàm tạo ra một giá trị trùng lặp để nó có thể hoạt động với nó
  • Giá trị của 'a' được sửa đổi bên trong hàm. Giá trị này sẽ được trả về
  • Giá trị trả về của a được lưu trữ trong biến 'y' và chúng sẽ có cùng một id, do đó chúng sẽ trỏ đến cùng một đối tượng số nguyên
Output:id of a: 1456621360x: 10y: 11id of x: 1456621344id of y: 1456621360
Các đối số hàm có thể thay đổi của Python

Các đối tượng có thể thay đổi như từ điển và danh sách cũng được truyền theo tham chiếu. Giả sử giá trị của một đối tượng có thể thay đổi được thay đổi bên trong phạm vi chức năng. Là một đối tượng có thể thay đổi, giá trị sẽ thay đổi bất kể tên của đối số đã được thông qua. Python trong trường hợp này không sao chép các giá trị sang đối tượng khác như trong ví dụ trước. Sơ đồ dưới đây sẽ làm rõ khái niệm này

Nghe có vẻ hơi khó hiểu khi python quản lý các đối tượng và giá trị lúc đầu. Tuy nhiên, khi bạn bắt đầu sử dụng nó cho một số chương trình, bạn sẽ nhanh chóng làm quen với nó và hiểu rằng hầu hết các quyết định được đưa ra về cách thức hoạt động của ngôn ngữ này là để tạo ra một môi trường trực quan hơn cho nhà phát triển. Python là một ngôn ngữ lập trình tuyệt vời và phải học đối với mọi nhà phát triển

Những gì được coi là đối tượng trong Python?

Đối tượng là khối xây dựng cơ bản của ngôn ngữ hướng đối tượng. Số nguyên, chuỗi, số dấu phẩy động, mảng chẵn và từ điển , đều là đối tượng. Cụ thể hơn, bất kỳ số nguyên đơn lẻ hoặc bất kỳ chuỗi đơn lẻ nào cũng là một đối tượng.

Số nguyên là một đối tượng hay lớp Python?

Như đã nói, có nhiều loại đối tượng khác nhau. Python coi số nguyên là một loại đối tượng khác chẳng hạn như một chuỗi.

Loại số nào trong Python?

Python có ba kiểu dữ liệu số tích hợp. số nguyên, số dấu phẩy động và số phức . Trong phần này, bạn sẽ tìm hiểu về số nguyên và số dấu phẩy động, đây là hai loại số được sử dụng phổ biến nhất.

Các số nguyên Python có được lưu trữ dưới dạng đối tượng không?

Là một lập trình viên Python, chắc hẳn bạn đã nghe nói rằng “Mọi thứ trong Python đều là đối tượng. ” Một số nguyên là một đối tượng . Một chuỗi là một đối tượng. Danh sách, từ điển, bộ dữ liệu, khung dữ liệu gấu trúc, mảng NumPy là các đối tượng. Ngay cả một chức năng là một đối tượng.

Chủ Đề