Tham số hàm tạo lớp Python

Hàm tạo là một hàm duy nhất được gọi tự động khi một đối tượng được tạo từ một lớp. Mục đích chính của hàm tạo là khởi tạo hoặc gán giá trị cho các thành viên dữ liệu của lớp đó. Nó không thể trả về bất kỳ giá trị nào khác ngoài none

Hãy xem cách sử dụng hàm tạo

Cú pháp của Python Constructor

def __init__(self):
	# initializations

init là một trong những chức năng dành riêng trong Python. Trong lập trình hướng đối tượng, nó được gọi là hàm tạo

Quy tắc của Python Constructor

  • Nó bắt đầu bằng từ khóa def, giống như tất cả các hàm khác trong Python
  • Theo sau nó là từ init, có tiền tố và hậu tố bằng dấu gạch dưới kép với một cặp dấu ngoặc, i. e. , __trong đó__()
  • Nó nhận một đối số gọi là self, gán giá trị cho các biến

Bản thân là một tham chiếu đến thể hiện hiện tại của lớp. Nó được tạo và chuyển tự động/ngầm định tới __init__() khi hàm tạo được gọi

Các loại Constructor trong Python

  1. Trình xây dựng được tham số hóa
  2. Hàm tạo không tham số
  3. Nhà xây dựng mặc định

1. Trình xây dựng được tham số hóa trong Python

Khi hàm tạo chấp nhận các đối số cùng với bản thân, nó được gọi là hàm tạo được tham số hóa

Các đối số này có thể được sử dụng bên trong lớp để gán giá trị cho các thành viên dữ liệu. Hãy xem một ví dụ

Mã số

class Family:  
    # Constructor - parameterized  
    members=5
    def __init__(self, count):  
        print("This is parametrized constructor")  
        self.members = count
    def show(self):  
        print("No. of members is", self.members)  
        
object = Family(10)  
object.show()   

đầu ra

This is parameterized constructor
No. of members is 10

Giải trình

  • Một đối tượng của lớp Family được tạo. Nó có một biến được gọi là thành viên
  • Khi đối tượng được tạo, một tham số (ở đây là 10) được truyền dưới dạng đối số
  • Tham số này (10 như trong ví dụ trên) được sử dụng bởi hàm tạo khi đối tượng được tạo
  • Số 10 được gán cho biến đếm, số này được gán thêm cho self. các thành viên
  • cái tôi. thành viên có thể được sử dụng trong lớp để in dữ liệu

2. Trình xây dựng không tham số hóa trong Python

Khi hàm tạo không chấp nhận bất kỳ đối số nào từ đối tượng và chỉ có một đối số, bản thân, trong hàm tạo, nó được gọi là hàm tạo không tham số

Điều này có thể được sử dụng để gán lại một giá trị bên trong hàm tạo. Hãy xem một ví dụ

Mã số

class Fruits:
    favourite = "Apple"

    # non-parameterized constructor
    def __init__(self):
        self.favourite = "Orange"

    # a method
    def show(self):
        print(self.favourite)


# creating an object of the class
obj = Fruits()

# calling the instance method using the object obj
obj.show()

đầu ra

Giải trình

Trong ví dụ trên, chúng tôi khởi tạo loại trái cây yêu thích của mình là Apple bên trong lớp. Nhưng chúng tôi muốn thay đổi nó ngay khi đối tượng được tạo

Điều này có thể được thực hiện bằng cách gán lại giá trị cho hàm tạo. Loại hàm tạo này không nhận bất kỳ đối số nào khác ngoài self. Nó có thể được sử dụng để in và kiểm tra xem giá trị của chúng tôi có bị thay đổi không

3. Trình xây dựng mặc định trong Python

Khi bạn không viết hàm tạo trong lớp đã tạo, Python tự tạo một hàm tạo trong quá trình biên dịch chương trình

Nó tạo ra một hàm tạo trống không có mã trong đó. Hãy xem một ví dụ

Ví dụ

class Assignments:
    check= "not done"
    # a method
    def is_done(self):
        print(self.check)

# creating an object of the class
obj = Assignments()

# calling the instance method using the object obj
obj.is_done()

đầu ra

Giải trình

Trong ví dụ trên, chúng tôi kiểm tra xem nhiệm vụ của chúng tôi đã được thực hiện chưa

Chúng tôi tạo một đối tượng của một lớp mà chúng tôi không viết hàm tạo

Python tạo một hàm tạo khi chúng tôi không cung cấp bất kỳ hàm khởi tạo nào để khởi tạo các biến thể hiện. Nó không làm gì cả

Hàm tạo là một loại phương thức (hàm) đặc biệt được sử dụng để khởi tạo các thành viên thể hiện của lớp

Trong C++ hoặc Java, hàm tạo có cùng tên với lớp của nó, nhưng nó đối xử với hàm tạo khác trong Python. Nó được sử dụng để tạo một đối tượng

Các nhà xây dựng có thể có hai loại

  1. Trình xây dựng được tham số hóa
  2. Trình tạo không tham số

Định nghĩa hàm tạo được thực thi khi chúng ta tạo đối tượng của lớp này. Trình tạo cũng xác minh rằng có đủ tài nguyên để đối tượng thực hiện bất kỳ tác vụ khởi động nào

Tạo hàm tạo trong python

Trong Python, phương thức __init__() mô phỏng hàm tạo của lớp. Phương thức này được gọi khi lớp được khởi tạo. Nó chấp nhận từ khóa self làm đối số đầu tiên cho phép truy cập các thuộc tính hoặc phương thức của lớp

Chúng ta có thể truyền bất kỳ số lượng đối số nào tại thời điểm tạo đối tượng lớp, tùy thuộc vào định nghĩa __init__(). Nó chủ yếu được sử dụng để khởi tạo các thuộc tính lớp. Mỗi lớp phải có một hàm tạo, ngay cả khi nó chỉ dựa vào hàm tạo mặc định

Xem xét ví dụ sau để khởi tạo các thuộc tính của lớp Nhân viên

Ví dụ

đầu ra

ID: 101 
Name: John
ID: 102 
Name: David

Đếm số đối tượng của một lớp

Hàm tạo được gọi tự động khi chúng ta tạo đối tượng của lớp. Xem xét ví dụ sau

Ví dụ

đầu ra

The number of students: 3

Trình xây dựng không tham số của Python

Hàm tạo không tham số hóa sử dụng khi chúng ta không muốn thao tác giá trị hoặc hàm tạo chỉ có self làm đối số. Xem xét ví dụ sau

Ví dụ

Trình xây dựng được tham số hóa Python

Hàm tạo được tham số hóa có nhiều tham số cùng với bản thân. Xem xét ví dụ sau

Ví dụ

đầu ra

This is parametrized constructor
Hello John

Trình xây dựng mặc định của Python

Khi chúng ta không đưa hàm tạo vào lớp hoặc quên khai báo nó, thì hàm tạo đó sẽ trở thành hàm tạo mặc định. Nó không thực hiện bất kỳ nhiệm vụ nào nhưng khởi tạo các đối tượng. Xem xét ví dụ sau

Ví dụ

đầu ra

Nhiều hơn một Constructor trong một lớp

Hãy xem một kịch bản khác, điều gì sẽ xảy ra nếu chúng ta khai báo hai hàm tạo giống nhau trong lớp

Ví dụ

đầu ra

Trong đoạn mã trên, đối tượng st được gọi là hàm tạo thứ hai trong khi cả hai đều có cùng cấu hình. Đối tượng st không thể truy cập phương thức đầu tiên. Trong nội bộ, đối tượng của lớp sẽ luôn gọi hàm tạo cuối cùng nếu lớp có nhiều hàm tạo

Ghi chú. Quá tải hàm tạo không được phép trong Python

Các hàm lớp tích hợp Python

Các chức năng tích hợp được định nghĩa trong lớp được mô tả trong bảng sau

SNFunctionDescription1getattr(obj,name,default) Nó được sử dụng để truy cập thuộc tính của đối tượng. 2setattr(obj,name,value)Được sử dụng để đặt một giá trị cụ thể cho thuộc tính cụ thể của một đối tượng. 3delattr(obj, name)Nó được sử dụng để xóa một thuộc tính cụ thể. 4hasattr(obj, name)Trả về true nếu đối tượng chứa một số thuộc tính cụ thể

Ví dụ

đầu ra

________số 8

Thuộc tính lớp tích hợp

Cùng với các thuộc tính khác, một lớp Python cũng chứa một số thuộc tính lớp tích hợp cung cấp thông tin về lớp

Một lớp có thể có tham số trong Python không?

Đối tượng lớp Python . Hãy nhớ rằng số lượng và loại tham số phải tương thích với các tham số nhận được trong hàm tạo. you put the name of the new object which is followed by the assignment operator and the name of the class with parameters (as defined in the constructor). Remember, the number and type of parameters should be compatible with the parameters received in the constructor function.

Chúng ta có thể có nhiều __ init __ trong lớp Python không?

__init__() Một cách tao nhã và Pythonic để mô phỏng nhiều hàm tạo là triển khai một. Phương thức __init__() với các đối số tùy chọn. Bạn có thể làm điều này bằng cách chỉ định các giá trị đối số mặc định phù hợp

__ init __ có phải là hàm tạo không?

Phương thức đặc biệt __init__ là hàm tạo của Python . Với sự hiểu biết về lập trình hướng đối tượng và các lớp, bây giờ chúng ta hãy xem cách phương thức __init__ hoạt động trong chương trình Python.

__ init __ có bắt buộc trong Python không?

Nó hoạt động như bạn đã mã hóa - __init__ là không bắt buộc .