Trong bài viết này, chúng ta sẽ tìm hiểu cách lấy tên hàm và tầm quan trọng của nó trong lập trình Python
Tên hàm là một phần thiết yếu của lập trình Python. Chúng giúp chúng tôi giữ cho mã của chúng tôi được tổ chức và dễ đọc. Khi viết một hàm, chúng ta đặt tên cho nó để sau này tham khảo. Tên hàm giống như nhãn của hàm. Nó giúp chúng ta nhớ chức năng làm gì và làm cho mã của chúng ta dễ đọc hơn
Gọi hàm trong python
Khi chúng ta gọi một hàm, chúng ta sử dụng tên hàm theo sau dấu ngoặc đơn
Ví dụ: nếu chúng ta có một hàm tên my_func[], chúng ta sẽ gọi nó là my_func[]. Các dấu ngoặc đơn là cần thiết vì chúng cho Python biết chúng ta muốn thực thi mã bên trong hàm
def func:
print["Welcome to geekbits!!"]
func[] # Calling the function.
Trả về Chào mừng bạn đến với geekbits
Python sẽ không thực thi mã bên trong hàm nếu chúng ta bỏ qua dấu ngoặc đơn khi gọi hàm
Nó có thể gây nhầm lẫn cho người mới bắt đầu, vì vậy hãy luôn bao gồm dấu ngoặc đơn khi gọi hàm
Quy ước đặt tên [tên hàm Python]
Tên hàm có thể có độ dài bất kỳ và chứa các chữ cái, số và dấu gạch dưới. Họ không thể bắt đầu bằng một số, mặc dù. Việc sử dụng tên mô tả cho các chức năng của chúng ta được coi là một thông lệ tốt để những người khác có thể dễ dàng hiểu mã của chúng ta làm gì
Chúng ta đã biết cách sử dụng hàm print[] để in thông báo ra màn hình. Tham khảo bài viết này
https. //www. chuyên viên máy tính. io/python-print-chức năng/
Hãy xem cách chúng ta có thể lấy tên của hàm. Chúng ta có thể làm điều này bằng cách sử dụng biến __name__
tích hợp
Sử dụng Biến __name__
trong python
Biến __name__
chứa tên của mô-đun hiện tại. Khi chúng tôi chạy một chương trình Python, biến __name__
được đặt thành
print["I am %s" %__name__]
def func[]:
print ["This is file 1"]
if __name__ == "__main__":
func[]
2. Nếu chúng tôi nhập một mô-đun, biến __name__
được đặt thành tên của mô-đun đóHãy xem cách nó hoạt động với hàm print[]. Chúng ta có thể bắt đầu bằng cách tạo hai tệp python. tệp1 và tệp2
Trong file1, chúng ta sẽ định nghĩa hàm print[]
print["I am %s" %__name__]
def func[]:
print ["This is file 1"]
if __name__ == "__main__":
func[]
trả lại
Tôi là _chính_
Đây là tập 1
Sau khi chạy chương trình này, biến __name__
được đặt thành
print["I am %s" %__name__]
def func[]:
print ["This is file 1"]
if __name__ == "__main__":
func[]
2. Đó là lý do tại sao câu lệnh if thực thi và "Đây là tệp 1" được in trong bảng điều khiểnỞ file2, chúng ta sẽ import module từ file1 và chạy chương trình
import file1
trả lại
tôi là tập tin1
Nhập mô-đun chạy chương trình từ mô-đun đã nhập
Như bạn có thể thấy, biến __name__
được đặt thành tên của mô-đun mà chúng tôi đã nhập. Trong trường hợp này, nó là file1. Tuy nhiên, câu lệnh if trong tệp1 thực thi vì biến __name__
không được đặt thành
print["I am %s" %__name__]
def func[]:
print ["This is file 1"]
if __name__ == "__main__":
func[]
2. Nó được đặt thành file1Hãy thực hiện một số sửa đổi đối với file1 và chạy chương trình
import file2
print["I am %s" %__name__]
trả lại
tôi là tập tin1
Tôi là _chính_
Như bạn có thể thấy, Chạy chương trình này sẽ thực thi mô-đun đã nhập và sau đó là chức năng in. Biến __name__
được đặt thành
print["I am %s" %__name__]
def func[]:
print ["This is file 1"]
if __name__ == "__main__":
func[]
2, là tên của mô-đun hiện tại. Câu lệnh if trong file1 cũng không thực thi vì file1 không chạy trực tiếp. Điều này có nghĩa là biến __name__
không được đặt thành print["I am %s" %__name__]
def func[]:
print ["This is file 1"]
if __name__ == "__main__":
func[]
2Bây giờ chúng ta đã biết cách thức hoạt động của biến __name__
, hãy xem cách chúng ta có thể sử dụng nó để biết tên của một hàm
Lấy tên hàm trong python. biến __name__
Chúng ta có thể sử dụng biến __name__
để lấy tên của bất kỳ chức năng nào, không chỉ các mô-đun đã nhập. Ví dụ: chúng ta có thể định nghĩa chức năng của mình và sau đó in tên của nó
def func[]:
print["Hello from Geekbits"]
print[func.__name__]
Chức năng trả về
Sau khi chạy chương trình này, chúng tôi thấy biến tên được đặt thành 'func'
Biến __name__
có thể rất hữu ích khi chúng ta muốn biết tên của hàm hiện đang thực thi. Ví dụ: giả sử chúng ta có một chương trình gọi hai hàm, func1[] và func2[]
def func1[]:
print["Hello from func1[]"]
def func2[]:
print["Hello from func2[]"]
func1[]
func2[]
Chúng ta có thể sử dụng biến __name__
để in tên hàm đang thực thi
def func1[]:
print[func1.__name__]
print["Hello from func1[]"]
def func2[]:
print[func2.__name__]
print["Hello from func2[]"]
func2[]
func1[]
trả lại
chức năng2
Xin chào từ func2[]
chức năng1
Xin chào từ func1[]
Sau khi chạy chương trình này, chúng ta thấy rằng biến __name__
được đặt thành 'func2' khi func2[] được thực thi và 'func1' khi func1[] được thực thi
Đây là một cách khác để làm điều tương tự
import sys
def func1[]:
print[sys._getframe[].f_code.co_name]
print["Hello from func1[]"]
def func2[]:
print[sys._getframe[].f_code.co_name]
print["Hello from func2[]"]
func2[]
func1[]
trả lại
chức năng2
Xin chào từ func2[]
chức năng1
Xin chào từ func1[]
Như bạn có thể thấy, biến __name__
có thể rất hữu ích cho mục đích gỡ lỗi. Nó có thể giúp chúng ta biết chức năng nào hiện đang được thực thi. Điều này rất hữu ích khi chúng ta đang làm việc với các chương trình lớn có nhiều chức năng
Phần kết luận
Trong bài viết này, chúng ta đã học cách lấy tên của một hàm bằng cách sử dụng biến __name__
. Chúng tôi cũng đã thấy điều này có thể hữu ích như thế nào cho mục đích gỡ lỗi. Câu hỏi ??