Chúng ta chỉ có các phương thức trong Java và chỉ có các hàm trong C nhưng trong Python, chúng ta có cả hàm và phương thức. Chúng trông và hoạt động giống nhau và điều này gây ra nhiều nghi ngờ cho người mới và chủ yếu là cho các lập trình viên đến từ Java và C
Trong bài viết này, chúng tôi mong muốn thảo luận về sự khác biệt giữa Phương thức và Hàm và có được một bức tranh rõ ràng về cả hai
Hàm trong Python
Hàm là tập hợp các dòng mã hoàn thành một nhiệm vụ nhất định. chức năng có
- Tên
- Thông số
- tuyên bố trở lại
Câu lệnh trả về và tham số là tùy chọn. Một chức năng có thể có chúng hoặc không
Tạo một hàm trong Python
Chúng ta có thể tạo một hàm bằng từ khóa def.
Cú pháp
def function_name[parameters]: # Statements...
Ví dụ về cách tạo Hàm trong Python
def join[str1, str2]: joined_str = str1 + str2 return joined_str print[join]
đầu ra
Trong ví dụ mã trên, chúng tôi đã tạo một hàm có tên tham gia kết hợp hai tham số của nó và trả về một chuỗi được nối
Các chức năng chỉ được thực thi khi chúng được gọi
Gọi một hàm trong Python
Không gọi, một chức năng sẽ không bao giờ chạy. Để gọi một hàm, chúng ta sử dụng cú pháp sau
cú pháp
function_name[arguments]
Ví dụ về cách gọi Hàm trong Python
print[join["Python", "Geeks"]]
đầu ra
PythonGeek
Trong ví dụ mã trên, chúng ta đã thực thi hàm join[] bằng cách gọi nó bằng hai đối số “Python” và “Geeks” và nó trả về chuỗi được nối của chúng “PythonGeeks”
Các loại Hàm trong Python
1. Hàm tích hợp trong Python
Các hàm đã được xác định trước trong các mô-đun tích hợp sẵn của Python được gọi là Hàm tích hợp. Vì chúng đã được xác định nên chúng ta không cần tạo chúng. Python bao gồm một số chức năng tích hợp. Để sử dụng các chức năng này, chúng ta chỉ cần gọi chúng
Ví dụ
li = [1,2,3] ans = sum[li] print[ans]
đầu ra
6
Trong ví dụ mã trên, chúng tôi đã sử dụng hai hàm tích hợp, sum[] và print[] để tìm và xuất tổng của danh sách li
2. Hàm do người dùng xác định [UDF] trong Python
Các hàm do người dùng xác định được gọi là Hàm do người dùng xác định. UDF là từ viết tắt của Hàm do người dùng xác định. Để sử dụng các hàm này, trước tiên chúng ta cần định nghĩa chúng và gọi chúng là. Chúng ta có thể xác định bao nhiêu UDF tùy thích trong chương trình của mình
Ví dụ
def add[num1, num2]: sum = num1 + num2 return add print[add[1,2]]
đầu ra
3
Trong ví dụ mã trên, chúng tôi đã xác định hàm add[] của riêng mình. Đây được gọi là Hàm do người dùng xác định. Sau đó, chúng tôi gọi nó với các đối số 1 và 2 để trả về tổng của chúng là 3
3. Hàm ẩn danh trong Python
Các hàm không có tên và được khai báo mà không sử dụng từ khóa def được gọi là Hàm ẩn danh. Để tạo các hàm này, chúng ta sử dụng từ khóa lambda và các hàm này còn được gọi là Hàm Lambda
Ví dụ
li = [1,2,3] new = list[map[lambda x:x+1, li]] print[new]
đầu ra
[2, 3, 4]
Trong ví dụ mã trên, chúng tôi đã sử dụng hàm lambda để tăng mọi giá trị trong danh sách
Các phương thức trong Python
Các chức năng bên trong một lớp được gọi là các phương thức. Các phương thức được liên kết với một lớp/đối tượng
Tạo một phương thức trong Python
Chúng tôi sử dụng cú pháp tương tự như hàm nhưng lần này, nó phải nằm trong một lớp
cú pháp
class ClassName: def method_name[parameters]: # Statements…
Ví dụ
________số 8đầu ra
Gọi một phương thức trong python
Để sử dụng một phương thức, chúng ta cần gọi nó. Chúng ta gọi phương thức giống như một hàm nhưng vì các phương thức được liên kết với lớp/đối tượng nên chúng ta cần sử dụng tên lớp/đối tượng và toán tử dấu chấm để gọi nó
cú pháp
object_name.method_name[arguments]
Ví dụ
def join[str1, str2]: joined_str = str1 + str2 return joined_str print[join]0
đầu ra
5
Trong ví dụ mã trên, chúng tôi đã tạo một đối tượng add1 cho lớp Addition của chúng tôi và sử dụng đối tượng đó để gọi phương thức add[] của chúng tôi với các đối số 2 và 3. Sau khi gọi, phương thức của chúng tôi đã được thực thi và trả về giá trị 5
Ở trong một lớp mang lại cho các phương thức thêm một vài khả năng. Các phương thức có thể truy cập các thuộc tính lớp/đối tượng. Vì các phương thức có thể truy cập các thuộc tính của lớp/đối tượng, nên chúng cũng có thể thay đổi chúng
Phương thức vs Hàm trong Python
Hàm trong PythonPhương thức trong Python Các hàm nằm ngoài lớpCác phương thức được tạo bên trong một lớpCác hàm không được liên kết với bất kỳ thứ gìCác phương thức được liên kết với các lớp mà chúng được tạo trongCác hàm có thể được thực thi chỉ bằng cách gọi tên của nóĐể thực thi các phương thức, chúng ta cần sử dụng tên đối tượng hoặc tên lớp và toán tử dấu chấm. Các hàm có thể không có tham số. Các phương thức nên có tham số mặc định là self hoặc cls để lấy địa chỉ của đối tượng hoặc lớp. Các hàm không thể truy cập hoặc sửa đổi các thuộc tính của lớpCác phương thức có thể truy cập và sửa đổi các thuộc tính của lớpHàm độc lập với lớpCác phương thức phụ thuộc vào các lớpBằng cách xem xét sự khác biệt ở trên, chúng ta có thể nói một cách đơn giản rằng tất cả các phương thức đều là hàm nhưng tất cả các hàm không phải là phương thức
Câu hỏi phỏng vấn về Phương thức so với Hàm trong Python
Q1. Từ đoạn mã đã cho, viết đầu ra và xác định đâu là hàm và đâu là phương thức
def join[str1, str2]: joined_str = str1 + str2 return joined_str print[join]1
trả lời 1. Đầu ra như sau
20
1Chức năng.
eat_many[rau, đếm]Phương pháp.
__init__[bản thân, tên]
eat_one[bản thân]
quý 2. Tạo phương thức is_empty[] trả về “Có” nếu đó là danh sách trống hoặc “Không” nếu đó không phải là danh sách trống
câu trả lời 2. Mã như sau
def join[str1, str2]: joined_str = str1 + str2 return joined_str print[join]2
Q3. Tạo một hàm nhận vào một số đối số và trả về căn bậc hai của lũy thừa phần mười của số đó
câu trả lời 3. Mã như sau
def join[str1, str2]: joined_str = str1 + str2 return joined_str print[join]3
Q4. Tạo một hàm nhận đối số n và tạo n đối tượng của lớp Nhân viên
câu trả lời 4. Mã như sau
def join[str1, str2]: joined_str = str1 + str2 return joined_str print[join]4
Q5. Đoạn mã dưới đây làm tăng NameError. Sửa mã và giải thích tại sao nó gây ra lỗi
def join[str1, str2]: joined_str = str1 + str2 return joined_str print[join]5
câu trả lời 5. NameError xảy ra do phương thức được gọi mà không sử dụng tên đối tượng. Mã đã sửa là
def join[str1, str2]: joined_str = str1 + str2 return joined_str print[join]6
đầu ra
4
Phương thức Python so với Câu đố về hàm
Giới hạn thời gian. 0
Tóm tắt bài kiểm tra
0 trong tổng số 10 câu hỏi đã hoàn thành
câu hỏi
Thông tin
Bạn đã hoàn thành bài kiểm tra trước đây. Do đó bạn không thể bắt đầu lại
Bài kiểm tra đang tải…
Bạn phải đăng nhập hoặc đăng ký để bắt đầu bài kiểm tra
Trước tiên bạn phải hoàn thành những điều sau đây
Kết quả
hoàn thành bài kiểm tra. Kết quả đang được ghi lại
Kết quả
0 của 10 Câu hỏi đã được trả lời đúng
Thời gian của bạn
Thời gian đã trôi qua
Bạn đã đạt 0 của 0 điểm 0]
[Các] Điểm đã kiếm được. 0 của 0 , [ . ]
0 Essay[s] Pending [Possible Point[s]: 0 ]
Thể loại
- Không được phân loại 0%
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- Hiện hành
- Đánh giá / Bỏ qua
- đã trả lời
- Chính xác
- Không đúng
Câu hỏi 1 của 10
1 . Câu hỏiTừ khóa nào được sử dụng để xác định cả phương thức và chức năng?
- định nghĩa
- chắc chắn
- lớp
- chức năng
Chính xác
Không đúng
Câu hỏi 2 của 10
2 . Câu hỏi____ độc lập với các lớp
- phương pháp
- Chức năng
- Cả A và B
- Không có điều nào ở trên
Chính xác
Không đúng
Câu hỏi 3 của 10
3 . Câu hỏi____ có thể truy cập hoặc sửa đổi các thuộc tính của lớp
- phương pháp
- Chức năng
- Cả A và B
- Không có điều nào ở trên
Chính xác
Không đúng
Câu hỏi 4 của 10
4 . Câu hỏiCác hàm được tạo _____ một lớp và các phương thức được tạo _____ một lớp
- Bên trong, bên trong
- Bên ngoài, bên ngoài
- Bên trong bên ngoài
- Bên ngoài bên trong
Chính xác
Không đúng
Câu hỏi 5 của 10
5 . Câu hỏi[Những] phát biểu nào sau đây là đúng?
Tuyên bố 1. Các chức năng bên trong một lớp được gọi là các phương thức
Tuyên bố 2. Tất cả các phương thức đều là hàm nhưng tất cả các hàm không phải là phương thức
- Phát biểu 1 là đúng
- Phát biểu 2 là đúng
- Cả hai tuyên bố đều đúng
- Không có tuyên bố nào là đúng
Chính xác
Không đúng
Câu hỏi 6 của 10
6 . Câu hỏiChọn một cuộc gọi phương thức chính xác cho đoạn mã sau
Mã số
>>> lớp Xin chào
>>> thế giới xác định [bản thân]
>>> print[“Xin chào thế giới”]
>>> obj = Xin chào[]
- thế giới[]
- thế giới [bản thân]
- Xin chào. thế giới[]
- đối tượng. thế giới[]
Chính xác
Không đúng
Câu hỏi 7 của 10
7 . Câu hỏiĐầu ra của đoạn mã dưới đây là gì?
Mã số
>>> xác định thêm [num1, num2]
>>> trả lại số1 + số2
>>> in[thêm[2, 3]]
- 5
- 6
- 4
- Lỗi cú pháp
Chính xác
Không đúng
Câu hỏi 8 của 10
8 . Câu hỏiĐầu ra của đoạn mã dưới đây là gì?
Mã số
>>> lớp trừ
>>> khác biệt rõ ràng[bản thân, số1, số2]
>>> trả lại num2 – num1
>>> phụ = Trừ []
>>> in[phụ. sự khác biệt [2,4]]
- -2
- 2
- 4
- Lỗi cú pháp
Chính xác
Không đúng
Câu hỏi 9 của 10
9 . Câu hỏiĐọc mã và chọn tùy chọn đúng
Mã số
>>> hạng Chó
>>> tiếng sủa chắc chắn [bản thân]
>>> print[“Sủa”]
>>> chắc chắn tạo_dogs[]
>>> dog1 = Dog[]
>>> con chó1. sủa[]
>>> tạo_dogs[]
- Nó in ra chuỗi “Barking”
- create_dogs[] là một hàm
- vỏ cây [] là một phương thức
- Tất cả những điều trên
Chính xác
Không đúng
Câu hỏi 10 của 10
10 . Câu hỏiĐầu ra của đoạn mã dưới đây là gì?
Mã số
>>> lớp nhân viên
>>> def __init__[bản thân, id, thanh toán]
>>> bản thân. id = id
>>> bản thân. trả = trả
>>> mức tăng xác định [bản thân]
>>> bản thân. trả = tự. trả*2
>>> tự trả về. trả
>>> def total_increment[num]
>>> nhân viên = []
>>> cho id trong phạm vi[1, num+1]
>>> nhân viên. nối thêm [Nhân viên [id, id * 1000]]
>>> gia số = [emp. gia tăng [] cho emp trong nhân viên]
>>> tổng trả về [số gia]
>>> in[total_increment[3]]
- 12000
- 11000
- 6000
- 13000
Chính xác
Không đúng
Phần kết luận
Trong bài này, chúng ta đã thảo luận về sự khác nhau giữa hàm và phương thức. Hơn nữa, nếu bạn có bất kỳ câu hỏi nào, xin vui lòng chia sẻ chúng với chúng tôi trong phần bình luận