Hàm tạo trong python với ví dụ là gì?

Trong Python, để tạo và khởi tạo một đối tượng của một lớp, bạn cần một phương thức đặc biệt và phương thức [hàm] đặc biệt đó được gọi là constructor. Mỗi lớp có một hàm tạo, nhưng không bắt buộc phải định nghĩa nó một cách rõ ràng. Trong hướng dẫn này, chúng ta sẽ đọc về các hàm tạo Python và cách sử dụng chúng

Mục lục

  • Hàm tạo Python - định nghĩa
  • Các loại hàm tạo
  • Bớt tư tưởng

Constructor trong Python là gì?

Constructor thường được sử dụng để khởi tạo một đối tượng của một lớp. Mục tiêu chính của các hàm tạo là gán các giá trị cho các thành viên dữ liệu của một lớp khi một đối tượng của lớp được tạo.
Constructor luôn được gọi khi một đối tượng được tạo và được mô phỏng bằng phương thức __init__[]. Nó chấp nhận từ khóa self, tham chiếu đến chính nó [đối tượng], 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.

cú pháp

def __init__[self]: 
    

Đầu vào

class Student:
  def __init__[self, name, roll_no]
    self.name = name
    self.roll_no = roll_no

  def display[self]:
    print ["Roll No.: %d \nName: %s" % [self.roll_no, self.name]]

# Creating object of the class
stud1 = Student["Alex", 34]
stud2 = Student["Mark", 67]

stud1.display[]
stud2.display[]

Chúng ta có thể truyền bất kỳ số lượng đối số nào khi tạo đối tượng lớp, dựa trên định nghĩa __init__[]. Hãy nhớ rằng, 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

đầu ra

Roll No.: 34
Name: Alex
Roll No.: 67
Name: Mark

Trong C++ hoặc Java, hàm tạo có cùng tên với lớp của nó nhưng trong Python thì không giống như vậy


Các loại hàm tạo Python

Có hai loại hàm tạo khác nhau trong Python

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

Hàm tạo được tham số hóa có nhiều tham số cùng với bản thân. Nó lấy đối số đầu tiên của nó làm tham chiếu đến cá thể đang được xây dựng được gọi là self và phần còn lại của các đối số được cung cấp bởi lập trình viên

Đầu vào

class Student:

# Parameterized constructor
  def __init__[self, name, roll_no]:
    self.name = name
    self.roll_no = roll_no

  def display[self]:
    print ["Roll No.: %d \nName: %s" % [self.roll_no, self.name]]

# Creating object of the class
stud1 = Student["Navya", 34]
stud2 = Student["Mia", 67]

stud1.display[]
stud2.display[]

Trong ví dụ trên, một hàm tạo được tham số hóa được xác định có hai tham số

đầu ra

Roll No.: 34
Name: Navya
Roll No.: 67
Name: Mia

Trình tạo không tham số

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ố. Định nghĩa của nó chỉ có một đối số là tham chiếu đến thể hiện đang được xây dựng

Đầu vào

class Student:
  
# no-argument constructor
  def __init__[self]
    self.name = "Mark"
    self.roll_no = "67"

  def display[self]:
    print ['Roll No.:', self.roll_no, \n'Name:', self.name]

# Creating object of the class
stud = Student[]

stud.display[]

Như bạn có thể thấy, không có đối số nào được gửi tới hàm tạo trong khi tạo đối tượng

đầu ra

Roll No.: 67
Name: Mark

Bớt tư tưởng

Hãy nhớ rằng, nếu bạn tạo bốn đối tượng, hàm tạo của lớp cũng được gọi bốn lần. Giống như Python có hàm tạo, nó cũng có hàm hủy được sử dụng để hủy đối tượng của một lớp. Mọi người có thể tìm hiểu thêm về các khái niệm Python tại đây

Trong bài viết này, tôi sẽ thảo luận về Constructor trong Python với các ví dụ. Vui lòng đọc bài viết trước của chúng tôi, nơi chúng tôi đã thảo luận về Lớp và Đối tượng trong Python cùng các ví dụ. Là một phần của bài viết này, chúng ta sẽ thảo luận về các con trỏ sau có liên quan đến Trình xây dựng trong Python

  1. Constructor là gì
  2. Hàm tạo có bắt buộc trong Python không?
  3. Một hàm tạo có thể được gọi một cách rõ ràng không?
  4. Hàm tạo có thể có bao nhiêu tham số?
  5. Trình xây dựng được tham số hóa và không tham số hóa trong Python
  6. Sự khác biệt giữa một phương thức và hàm tạo trong Python
  7. Sự khác biệt giữa một phương thức và một chức năng
Constructor trong Python

Trong bất kỳ ngôn ngữ lập trình nào, hàm tạo là một phương thức, theo mặc định, được gọi bất cứ khi nào một thể hiện [đối tượng] cho một lớp được tạo. Không bắt buộc phải gọi hoặc gọi nó một cách rõ ràng

Nói chung, hàm tạo được sử dụng cho các khởi tạo ban đầu được yêu cầu trong quá trình tạo đối tượng. Trong python, hàm tạo là một phương thức có tên ‘__init__’. Tham số đầu tiên của phương thức phải là 'self' [tham chiếu đến đối tượng hiện tại].

cú pháp

Hàm tạo có bắt buộc trong Python không?

Không, lớp không bắt buộc phải có hàm tạo. Nó hoàn toàn dựa trên yêu cầu của chúng ta là có constructor hay không. Tại thời điểm tạo đối tượng nếu có yêu cầu khởi tạo thì chúng ta nên sử dụng hàm tạo, nếu không thì không cần thiết. Cũng không có hàm tạo, chương trình python hợp lệ

Thí dụ. Trình xây dựng [demo3. py]

class Employee:
   def __init__ [self]:
       print["constructor is executed automatically at the time of object creation"]

emp = Employee[]

đầu ra.  

Trong demo3 này. py, chúng ta vừa tạo một đối tượng và chưa gọi bất kỳ phương thức nào. Tuy nhiên, chúng tôi có một cái gì đó được in ra bàn điều khiển, được thực hiện bởi hàm tạo “__init__”. Do đó, chúng ta có thể kết luận rằng nó được gọi tự động tại thời điểm tạo đối tượng,

Một hàm tạo có thể được gọi một cách rõ ràng không?

Có, chúng ta có thể gọi hàm tạo một cách rõ ràng bằng tên đối tượng. Nhưng vì hàm tạo được thực thi tự động tại thời điểm tạo đối tượng, nên không nên gọi nó một cách rõ ràng

Thí dụ. Gọi Constructor một cách rõ ràng [demo4. py]

________số 8

đầu ra

Ghi chú. Hàm tạo không bắt buộc phải được đưa vào. Trong trường hợp, nếu chúng ta chưa bao gồm một hàm tạo thì bên trong python sẽ bao gồm một hàm tạo trống. Chúng ta có thể kiểm tra điều này bằng cách sử dụng phương thức tích hợp dir[class_name]

Thí dụ. Trình xây dựng rỗng trong Python [demo5. py]

class Sample:
   def m1[self]:
       print["m1 is instance method called with object name"]

s = Sample[]
s.m1[]
print[dir[Sample]]

đầu ra

Hàm tạo có thể có bao nhiêu tham số?

Constructor có thể có bao nhiêu tham số tùy theo yêu cầu. Không có giới hạn cho nó. Tất cả các giá trị mà chúng ta cần hoặc muốn được khởi tạo trong quá trình tạo đối tượng sẽ được chuyển cho hàm tạo. Theo mặc định, một biến nên tham chiếu đến thể hiện hiện tại phải luôn ở đó trong hàm tạo i. bản thân

Thí dụ. Trình xây dựng không được tham số hóa trong Python [demo6. py]

class Student:
  def __init__[self, name, roll_no]
    self.name = name
    self.roll_no = roll_no

  def display[self]:
    print ["Roll No.: %d \nName: %s" % [self.roll_no, self.name]]

# Creating object of the class
stud1 = Student["Alex", 34]
stud2 = Student["Mark", 67]

stud1.display[]
stud2.display[]
0

đầu ra

trong bản trình diễn. 6. py, hàm tạo không có bất kỳ tham số nào ngoại trừ bản thân. Bản thân chứa địa chỉ đối tượng hiện tại

Thí dụ. Trình xây dựng không được tham số hóa trong Python [demo7. py]

class Student:
  def __init__[self, name, roll_no]
    self.name = name
    self.roll_no = roll_no

  def display[self]:
    print ["Roll No.: %d \nName: %s" % [self.roll_no, self.name]]

# Creating object of the class
stud1 = Student["Alex", 34]
stud2 = Student["Mark", 67]

stud1.display[]
stud2.display[]
1

đầu ra

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

trong demo7. py cũng vậy, hàm tạo không có bất kỳ tham số nào ngoại trừ bản thân. Trong hàm tạo, chúng tôi đã khởi tạo một biến 'id' với giá trị 1. Tất cả các đối tượng được tạo cho lớp trên sẽ có cùng giá trị cho id. Nếu chúng ta muốn các giá trị khác nhau cho các trường hợp khác nhau thì chúng ta cần sử dụng một hàm tạo được tham số hóa

Thí dụ. Trình xây dựng được tham số hóa trong Python [demo8. py]

class Student:
  def __init__[self, name, roll_no]
    self.name = name
    self.roll_no = roll_no

  def display[self]:
    print ["Roll No.: %d \nName: %s" % [self.roll_no, self.name]]

# Creating object of the class
stud1 = Student["Alex", 34]
stud2 = Student["Mark", 67]

stud1.display[]
stud2.display[]
2

đầu ra

trong demo8. py, chúng tôi đã sử dụng hàm tạo được tham số hóa với id làm tham số. Tại thời điểm tạo đối tượng, chúng ta cần truyền một giá trị để nó có thể được lưu trữ trong biến id cho đối tượng. Trong khi đề cập đến id của đối tượng 'e1', bản thân sẽ đề cập đến e1. Do đó, bản thân. id cho 1 làm đầu ra. Trong khi đề cập đến id của đối tượng 'e2', bản thân sẽ đề cập đến e2. Do đó, bản thân. id cho 2 làm đầu ra. Điều này giải thích cho chúng ta chính xác self là gì và nó có thể được sử dụng như thế nào

Thí dụ. Trình xây dựng được tham số hóa trong Python [demo9. py]

class Student:
  def __init__[self, name, roll_no]
    self.name = name
    self.roll_no = roll_no

  def display[self]:
    print ["Roll No.: %d \nName: %s" % [self.roll_no, self.name]]

# Creating object of the class
stud1 = Student["Alex", 34]
stud2 = Student["Mark", 67]

stud1.display[]
stud2.display[]
3

đầu ra

Sự khác biệt giữa một phương thức và hàm tạo

Sự khác biệt giữa một phương thức và một chức năng

Các chức năng được viết bên trong một lớp chỉ có thể được truy cập với các đối tượng được tạo từ lớp. Chúng được gọi là các phương thức. Chúng ta có thể nói rằng các phương thức không là gì ngoài các hàm có thể được tham chiếu bởi các đối tượng của lớp

Trong bài viết tiếp theo, tôi sẽ thảo luận về Các loại biến trong một lớp trong Python. Ở đây, trong bài viết này, tôi cố gắng giải thích về Constructor trong Python. Tôi hy vọng bạn thích bài viết này. Tôi muốn có phản hồi của bạn. Vui lòng gửi phản hồi, câu hỏi hoặc nhận xét của bạn về bài viết này

một hàm tạo với ví dụ là gì?

Constructor trong C++ là một phương thức đặc biệt được gọi tự động tại thời điểm tạo đối tượng . Nó được sử dụng để khởi tạo các thành viên dữ liệu của các đối tượng mới nói chung. Hàm tạo trong C++ có cùng tên với lớp hoặc cấu trúc. Trình xây dựng được gọi tại thời điểm tạo đối tượng.

Hàm tạo được sử dụng để làm gì trong Python?

Các hàm tạo lớp là một phần cơ bản của lập trình hướng đối tượng trong Python. Chúng cho phép bạn tạo và khởi tạo đúng cách các đối tượng của một lớp nhất định, giúp các đối tượng đó sẵn sàng sử dụng .

Hàm tạo trong Python với ví dụ thời gian thực là gì?

Ví dụ thực tế . Nó đặt giá trị mặc định cho các biến như số bánh xe, số cửa . Nếu bạn định nghĩa một lớp Car, lớp này đặt một số biến đối tượng [lưu ý self được sử dụng để chỉ các giá trị của đối tượng], nó sẽ được đặt khi tạo.

3 loại hàm tạo là gì?

Constructor trong C++ là các hàm thành viên được gọi khi một đối tượng của lớp được tạo. Chủ yếu có 3 loại hàm tạo trong C++, Các hàm tạo mặc định, được tham số hóa và Sao chép .

Chủ Đề