Tên hàm python bên trong hàm
Cách Pythonic nhất để trích xuất tên từ bất kỳ đối tượng hoặc lớp nào là sử dụng thuộc tính Show def your_function(): pass string_name = your_function.__name__ print(string_name) # your_function Tuy nhiên, có một trường hợp quan trọng mà phương pháp này sẽ thất bại ? . Trong Python, hàm là đối tượng. Bạn có thể tạo nhiều biến trỏ đến cùng một đối tượng trong bộ nhớ. Do đó, bạn có thể tạo hai tên print(string_name) # your_function2 và print(string_name) # your_function3 mà cả hai đều trỏ đến cùng một đối tượng hàm. Khi gọi print(string_name) # your_function4, kết quả có thể là print(string_name) # your_function3 thay vì print(string_name) # your_function2 như bạn mong đợi Điều này được thể hiện trong ví dụ tối thiểu sau đây ________số 8_______Vì cả hai tên đều trỏ đến cùng một đối tượng bộ nhớ, nhưng print(string_name) # your_function3 trỏ đến nó trước, nên tên của đối tượng là print(string_name) # your_function3. Việc sử dụng bộ nhớ của mã này được hiển thị bằng công cụ Python Tutor Cả hai biến đều tham chiếu đến cùng một đối tượng hàm có giá trị mặc định là tên print(string_name) # your_function3 Phương pháp 2. Sử dụng thuộc tính __qualname__Để trích xuất tên từ bất kỳ đối tượng hoặc lớp nào, bạn cũng có thể sử dụng thuộc tính def your_function(): pass string_name = your_function.__name__ print(string_name) # your_function0 của nó. Ví dụ, gọi def your_function(): pass string_name = your_function.__name__ print(string_name) # your_function1 mang lại giá trị chuỗi print(string_name) # your_function1. Bạn sẽ sử dụng def your_function(): pass string_name = your_function.__name__ print(string_name) # your_function0 trên __name__ nếu bạn cũng cần một số ngữ cảnh, chẳng hạn như lớp xác định phương thứcĐoạn mã sau tạo một hàm và một phương thức bên trong một lớp. Sau đó, nó so sánh đầu ra của các thuộc tính def your_function(): pass string_name = your_function.__name__ print(string_name) # your_function0 cho cả hàm và lớp def my_function(): pass class My_Class(object): def my_method(self): pass print(my_function.__name__) # "my_function" print(My_Class.my_method.__name__) # "my_method" print(my_function.__qualname__) # "my_function" print(My_Class.my_method.__qualname__) # "My_Class.my_method" Bạn có thể tìm hiểu sâu hơn về các đặc điểm riêng của def your_function(): pass string_name = your_function.__name__ print(string_name) # your_function0 tại đây và tại đây cảm ơn đã đọc bài viết này. Để nâng cao kỹ năng Python của bạn, hãy cân nhắc tham gia học viện email Finxter miễn phí với nhiều cheat sheet, hướng dẫn Python và câu đố lập trình thú vị. 🙂 Chris Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners (NoStarch 2020), đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây Có thể bạn quan tâmTrong 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 pythonKhi 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
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 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 Sử dụng biến __name__ trong pythonBiến 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()
Sau khi chạy chương trình này, biến 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
Nhập mô-đun chạy chương trình từ mô-đun đã nhập Như bạn có thể thấy, biến 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
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 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 2Bây giờ chúng ta đã biết cách thức hoạt động của biến Lấy tên hàm trong python. biến __name__Chúng ta có thể sử dụng biến
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
Chúng ta có thể sử dụng biến
Sau khi chạy chương trình này, chúng tôi thấy rằng biến Đây là một cách khác để làm điều tương tự
Như bạn có thể thấy, biến Phần kết luậnTrong 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 |