Làm cách nào để chuyển tham số cho hàm tạo trong python?

Hãy bắt đầu bài viết Trình xây dựng Python của TechVidvan bằng cách tìm hiểu về Lớp trong Python và Đối tượng trong Python

Các hàm tạo của Python cung cấp cho bạn một cách để khởi tạo các thuộc tính dữ liệu trong một lớp

Tại sao nên sử dụng Python Constructor?

Trước khi đi sâu vào các hàm tạo trong python, trước tiên chúng ta cần nắm rõ một khái niệm quan trọng. Tức là trong Python, bạn không thể sử dụng biến trước khi gán giá trị cho nó, bất kể bạn sử dụng biến ở đâu

Để chứng minh mức độ nghiêm trọng của vấn đề này, hãy xem xét phiên ngắn này tại Python Shell

Câu lệnh đầu tiên không thực thi được khi chúng ta xác định cả hai biến

>>> x += y

đầu ra

TênLỗi. tên 'x' không được xác định

Thông dịch viên phàn nàn rằng 'x' không được xác định

Bây giờ chúng ta hãy xác định 'x' và sau đó xem thông dịch viên nói gì

>>> x = 10
>>> x += y

đầu ra

TênLỗi. tên 'y' không được xác định

Thông dịch viên lại phàn nàn. Lần này nó nói 'y' không được xác định

Không nói thêm thông dịch viên. Chúng tôi cũng sẽ xác định 'y' cho bạn

>>> y = 1
>>> x += y
>>> x
11
>>> y
1

thì đấy. Nó hoạt dộng bây giờ

Điểm mấu chốt là, bất kể bạn sử dụng biến ở đâu trong Python, bạn phải khởi tạo chúng với giá trị bắt đầu

Nhưng câu hỏi ở đây là. làm thế nào để chúng ta làm điều này cho một đối tượng mới được tạo từ một lớp?

Trong lập trình hướng đối tượng, các “constructor” sẽ xử lý tình huống này. Trong các ngôn ngữ OOP khác, hàm tạo là một phương thức đặc biệt chịu trách nhiệm cho cả việc khởi tạo đối tượng [i. e. tạo một đối tượng mới] và khởi tạo thuộc tính [i. e. gán giá trị cho các thuộc tính cho đối tượng đó]

Nhưng trong Python, trình thông dịch tự động xử lý phần khởi tạo đối tượng. Vì vậy, tất cả những gì bạn cần một hàm tạo là khởi tạo thuộc tính

Vì vậy, bây giờ chúng ta đã biết “tại sao”, hãy chuyển sang phần “làm thế nào”

Trình xây dựng mã hóa

Chúng ta đã nói ở phần trước rằng một phương thức đặc biệt chịu trách nhiệm gán giá trị cho các thuộc tính của một đối tượng. Phương thức đặc biệt này, hay như chúng ta hay gọi trong Python, “phương thức kỳ diệu” này chính là phương thức __init__

Hãy thêm __init__ vào một lớp Sinh viên có hai thuộc tính, tên và số cuộn

Hiện tại, hãy để trống phương thức __init__ chỉ với một câu lệnh pass bên trong nó [chúng ta sẽ thêm một số hành vi ngay sau đây]

class Student:
    def __init__[self]:
        pass
    def show[self]:
        print["Name: ", self.name]
        print["Roll no.: ", self.roll]

Lưu ý rằng giống như mọi phương thức khác được định nghĩa trong một lớp, phương thức __init__ cũng cần có “self” làm tham số đầu tiên của nó

Bây giờ, tất cả những gì chúng ta cần là sử dụng __init__ để khởi tạo các thuộc tính của lớp [tên và cuộn]. Câu hỏi là. chúng ta lấy các giá trị khởi tạo này từ đâu và làm cách nào để các giá trị này được đưa vào __init__?

Truyền đối số cho __init__

Chúng ta có thể chuyển bao nhiêu đối số cho __init__ tùy thích. Tất cả những gì chúng ta phải làm là đặt tên cho các đối số của mình

Vì vậy, hãy thêm các đối số có tên n và r để tự khởi tạo các thuộc tính của chúng ta. tên và bản thân. cuộn tương ứng

class Student:
    def __init__[self, n, r]:
        self.name = n
        self.roll = r
    def show[self]:
        print["Name: ", self.name]
        print["Roll no.: ", self.roll]

Bây giờ chúng ta đã triển khai một hàm tạo python cho lớp Sinh viên của mình, tất cả những gì chúng ta cần làm là truyền các giá trị thực cho các đối số n và r

Chúng tôi làm điều này trong khi khởi tạo đối tượng, tôi. e. , tạo một đối tượng mới cho lớp

Hãy tạo một đối tượng s1 từ lớp Sinh viên

s1 = Student[“Ross”, 10]

Chúng tôi chuyển hai đối số, "Ross" đi vào s1. tên và 10 đi vào s1. cuộn cho đối tượng s1. Bây giờ chúng ta có thể gọi phương thức show[] trên đối tượng s1

>>> s1 = Student[“Ross”, 10]
>>> s1.show[]
Name: Ross
Roll no.: 10
>>> s2 = Student[“Rachel”, 9]
>>> s2.show[]
Name: Rachel
Roll no.: 9
>>>

Chúng ta có thể tạo bao nhiêu đối tượng tùy thích và mỗi đối tượng có thể có các giá trị khác nhau cho các thuộc tính của chúng

Chúng ta cũng có thể truy cập các thuộc tính của các đối tượng bằng cách sử dụng toán tử dấu chấm như s1. tên, trả về giá trị của tên thuộc tính của đối tượng s1

>>> s1.name
‘Ross’
>>> s2.roll
9

Các loại Trình xây dựng Python

Hàm tạo trong Python có thể có hai loại

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

Các hàm tạo được tham số hóa là những hàm có tham số [không phải bản thân] được xác định trong danh sách tham số của phương thức __init__. Loại hàm tạo này có thể lấy đối số từ người dùng

Lớp Sinh viên mà chúng ta đã thảo luận ở trên có một hàm tạo được tham số hóa

Hàm tạo của sinh viên nhận hai đối số [không phải bản thân], n và r

b. Trình xây dựng không tham số trong Python

Nó còn được gọi là hàm tạo mặc định

Phương thức __init__ bao gồm một tham số duy nhất self. Không có tham số nào khác trong danh sách tham số __init__

Do đó, hàm tạo này không nhận đối số trong khi tạo một đối tượng mới

Các hàm tạo không tham số gán các giá trị mặc định cho các thuộc tính của lớp

Phương thức __init__ của lớp sinh viên có thể được chuyển đổi thành hàm tạo không tham số như sau

________số 8

Như bạn đã thấy, phương thức __init__ không có tham số nào ngoài self

Và trình thông dịch python gán các giá trị mặc định là “Monica” và 15 cho thuộc tính self. tên và bản thân. cuộn, tương ứng

Chúng ta có thể tạo một đối tượng s3 như

>>> s3 = Student[]
>>> s3.show[]

đầu ra

Tên. Monica
Không lăn. 15

Để tôi chỉ cho bạn một thủ thuật Python

Bạn có thể kết hợp khái niệm hàm tạo mặc định và được tham số hóa trong python. Chúng tôi biết rằng các phương thức là các chức năng được ngụy trang

Giống như các hàm, các phương thức cũng có thể nhận các tham số mặc định

Vì vậy, chúng ta có thể sửa đổi phương thức __init__ của lớp Student để bao gồm các giá trị mặc định cho các tham số n và r của nó

>>> x = 10
>>> x += y
0

Bây giờ chúng tôi không chuyển đối số, đặt tên và cuộn nhận các giá trị mặc định lần lượt là “Monica” và 15

Mặt khác, các thuộc tính sẽ nhận các giá trị của các đối số mà chúng ta truyền vào

Hãy tiếp tục và kiểm tra nó trong trình bao Python

>>> x = 10
>>> x += y
1

kết thúc

Bài viết về python này đã giới thiệu cho bạn các hàm tạo Python. Bạn cũng đã biết lý do tại sao chương trình của chúng tôi cần các hàm tạo này trong python và cách chúng tôi có thể triển khai chúng

Chúng tôi cũng đã xem qua các loại hàm tạo của python, kết thúc bằng một thủ thuật tinh vi mà bạn có thể sử dụng trong chương trình của mình khi làm việc với các hàm tạo

Chúng ta có thể truyền tham số cho hàm tạo không?

Bạn có thể sử dụng bất kỳ loại dữ liệu nào cho tham số của phương thức hoặc hàm tạo . Điều này bao gồm các kiểu dữ liệu nguyên thủy, chẳng hạn như double, float và số nguyên, như bạn đã thấy trong phương thức computePayment và các kiểu dữ liệu tham chiếu, chẳng hạn như đối tượng và mảng.

__ 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 __ trong Python là gì?

__init__ trong Python là gì? . Constructor được sử dụng để khởi tạo trạng thái của đối tượng. Nhiệm vụ của constructor là khởi tạo [gán giá trị] cho các thành viên dữ liệu của lớp khi một đối tượng của lớp được tạo

Chủ Đề