Làm thế nào để bạn sử dụng tất cả các phương pháp trong python?

Đối với các chức năng toàn cầu, dir[] là lệnh sử dụng [như đã đề cập trong hầu hết các câu trả lời này], tuy nhiên, điều này liệt kê cả chức năng công khai và chức năng không công khai cùng nhau

Ví dụ như chạy

>>> import re
>>> dir[re]

Trả về các hàm/lớp như

'__all__', '_MAXCACHE', '_alphanum_bytes', '_alphanum_str', '_pattern_type', '_pickle', '_subx'

Một số trong số đó thường không dành cho việc sử dụng lập trình chung [nhưng do chính mô-đun đó, ngoại trừ trường hợp DunderAliases như __doc__, __file__ ect]. Vì lý do này, có thể không hữu ích khi liệt kê chúng với những cái công khai [đây là cách Python biết những gì sẽ nhận được khi sử dụng from module import *]

Có thể sử dụng __all__ để giải quyết vấn đề này, nó trả về một danh sách tất cả các hàm và lớp công khai trong một mô-đun [những hàm không bắt đầu bằng dấu gạch dưới - _]. Xem Ai đó có thể giải thích __all__ bằng Python không?

Đây là một ví dụ

>>> import re
>>> re.__all__
['match', 'fullmatch', 'search', 'sub', 'subn', 'split', 'findall', 'finditer', 'compile', 'purge', 'template', 'escape', 'error', 'A', 'I', 'L', 'M', 'S', 'X', 'U', 'ASCII', 'IGNORECASE', 'LOCALE', 'MULTILINE', 'DOTALL', 'VERBOSE', 'UNICODE']
>>>

Tất cả các hàm và lớp có dấu gạch dưới đã bị xóa, chỉ để lại những hàm và lớp được định nghĩa là công khai và do đó có thể được sử dụng thông qua

'__all__', '_MAXCACHE', '_alphanum_bytes', '_alphanum_str', '_pattern_type', '_pickle', '_subx'
1

Python là một ngôn ngữ tuyệt vời nhưng nó có thể gây khó khăn cho người mới sử dụng thành thạo. Giống như bất kỳ ngôn ngữ nói nào, Python yêu cầu chúng ta hiểu những điều cơ bản trước khi chúng ta có thể chuyển sang xây dựng các ứng dụng đa dạng hơn và rộng hơn trong lĩnh vực khoa học dữ liệu

Đây là vấn đề - nếu bạn nắm vững kiến ​​thức cơ bản của mình, bạn sẽ thấy Python thật dễ dàng. Nhưng điều quan trọng là dành thời gian học ban đầu để làm quen với các tính năng mà Python cung cấp. Nó thực sự sẽ được đền đáp trong thời gian dài

Tất nhiên Python là một ngôn ngữ lập trình hướng đối tượng [OOP]. Đây là một khái niệm rộng và không thể nắm bắt tất cả cùng một lúc. Trên thực tế, việc thành thạo OOP có thể mất vài tháng hoặc thậm chí vài năm. Nó hoàn toàn phụ thuộc vào khả năng hiểu biết của bạn. Tôi thực sự khuyên bạn nên xem qua bài viết trước của tôi về 'Các khái niệm cơ bản về lập trình hướng đối tượng' trước

Vì vậy, trong bài viết cụ thể này, tôi sẽ mở rộng hơn nữa khái niệm về các phương thức trong Lập trình hướng đối tượng. Chúng ta sẽ nói về các loại Phương thức khác nhau trong Python. Vì các Phương thức trong python đôi khi có thể gây nhầm lẫn nếu bạn chưa quen với OOP, nên tôi sẽ trình bày chi tiết về các phương thức trong Python và các loại của chúng trong bài viết này. Và sau đó chúng ta sẽ thấy các trường hợp sử dụng của các phương pháp này

Nhưng chờ đã - các phương thức Python là gì?

Nếu bạn hoàn toàn chưa quen với Python, bạn nên xem khóa học Python miễn phí này sẽ dạy cho bạn mọi thứ bạn cần để bắt đầu trong thế giới khoa học dữ liệu

Mục lục

  • Phương thức trong Python là gì?
  • Các loại phương thức trong Python
    • Phương thức sơ thẩm
    • phương pháp lớp
    • phương pháp tĩnh
  • Khi nào nên sử dụng loại Phương thức Python nào?

Phương thức trong Python là gì?

câu hỏi lớn

Trong Lập trình hướng đối tượng, chúng ta có các đối tượng [vui lòng cuộn trống]. Các đối tượng này bao gồm các thuộc tính và hành vi. Hơn nữa, các thuộc tính của đối tượng được xác định bởi các thuộc tính và hành vi được xác định bằng các phương thức. Các phương thức này được định nghĩa bên trong một lớp. Các phương thức này là đoạn mã có thể tái sử dụng có thể được gọi/gọi tại bất kỳ điểm nào trong chương trình

Python cung cấp nhiều loại phương thức này. Đây là những điều cốt yếu để trở thành một lập trình viên hiệu quả và do đó rất hữu ích cho một chuyên gia khoa học dữ liệu

Các loại phương thức trong Python

Về cơ bản có ba loại phương thức trong Python

  • Phương thức sơ thẩm
  • phương pháp lớp
  • Phương thức tĩnh

Hãy nói chi tiết về từng phương pháp

Phương thức sơ thẩm

Mục đích của các phương thức thể hiện là thiết lập hoặc nhận thông tin chi tiết về các thể hiện [đối tượng] và đó là lý do tại sao chúng được gọi là các phương thức thể hiện. Chúng là loại phương thức phổ biến nhất được sử dụng trong lớp Python

Chúng có một tham số mặc định - self, trỏ đến một thể hiện của lớp. Mặc dù bạn không phải vượt qua điều đó mỗi lần. Bạn có thể thay đổi tên của tham số này nhưng tốt hơn hết là tuân theo quy ước i. bản thân

Bất kỳ phương thức nào bạn tạo bên trong một lớp đều là một phương thức thể hiện trừ khi bạn chỉ định riêng Python nếu không. Hãy xem cách tạo một phương thức thể hiện

class My_class:
  def instance_method[self]:
    return "This is an instance method."

Nó đơn giản như vậy

Để gọi một phương thức thể hiện, bạn phải tạo một đối tượng/thể hiện của lớp. Với sự trợ giúp của đối tượng này, bạn có thể truy cập bất kỳ phương thức nào của lớp

obj = My_class[]
obj.instance_method[]

Khi phương thức thể hiện được gọi, Python sẽ thay thế đối số self bằng đối tượng thể hiện, obj. Đó là lý do tại sao chúng ta nên thêm một tham số mặc định trong khi xác định các phương thức thể hiện. Lưu ý rằng khi instance_method[] được gọi, bạn không cần phải vượt qua self. Python làm điều này cho bạn

Cùng với tham số mặc định, bạn cũng có thể thêm các tham số khác theo lựa chọn của mình

class My_class:

  def instance_method[self, a]:
    return f"This is an instance method with a parameter a = {a}."

Chúng tôi có một tham số bổ sung “a” ở đây. Bây giờ hãy tạo đối tượng của lớp và gọi phương thức thể hiện này

obj = My_class[]
obj.instance_method[10]

Một lần nữa, bạn có thể thấy chúng tôi đã không chuyển 'self' làm đối số, Python làm điều đó cho chúng tôi. Nhưng phải nói đến những lập luận khác, trong trường hợp này, nó chỉ là một. Vì vậy, chúng tôi đã chuyển 10 thành giá trị của “a”

Bạn có thể sử dụng “self” bên trong một phương thức thể hiện để truy cập các thuộc tính và phương thức khác của cùng một lớp

________số 8_______

Lưu ý rằng phương thức __init__[] là một loại phương thức đặc biệt được gọi là hàm tạo. Phương thức này được gọi khi một đối tượng được tạo từ lớp và nó cho phép lớp khởi tạo các thuộc tính của lớp

obj = My_class[2,4]
obj.instance_method[]

Hãy thử mã này trong cửa sổ mã hóa trực tiếp bên dưới

Với sự trợ giúp của từ khóa “bản thân”- bản thân. một và bản thân. b, chúng ta đã truy cập các biến có trong phương thức __init__[] của cùng một lớp

Cùng với các đối tượng của một lớp, một phương thức thể hiện có thể truy cập chính lớp đó với sự trợ giúp của self. thuộc tính __class__. Hãy xem làm thế nào

class My_class[]:

  def instance_method[self]:
    print["Hello! from %s" % self.__class__.__name__]

obj = My_class[]
obj.instance_method[]

cái tôi. __tầng lớp__. Thuộc tính __name__ trả về tên của lớp mà thể hiện của lớp [bản thân] có liên quan

2. phương pháp lớp

Mục đích của các phương thức lớp là thiết lập hoặc lấy thông tin chi tiết [trạng thái] của lớp. Đó là lý do tại sao chúng được gọi là các phương thức lớp. Họ không thể truy cập hoặc sửa đổi dữ liệu phiên bản cụ thể. Họ bị ràng buộc với lớp thay vì các đối tượng của họ. Hai điều quan trọng về các phương thức của lớp

  • Để định nghĩa một phương thức lớp, bạn phải xác định rằng đó là một phương thức lớp với sự trợ giúp của trình trang trí @classmethod
  • Các phương thức lớp cũng nhận một tham số mặc định- cls, trỏ đến lớp. Một lần nữa, điều này không bắt buộc phải đặt tên cho tham số mặc định “cls”. Nhưng tốt hơn hết là tuân theo các quy ước

Bây giờ hãy xem cách tạo các phương thức lớp

class My_class:

  @classmethod
  def class_method[cls]:
    return "This is a class method."

Đơn giản vậy thôi

Như tôi đã nói trước đó, với sự trợ giúp của thể hiện của lớp, bạn có thể truy cập bất kỳ phương thức nào. Vì vậy, chúng tôi cũng sẽ tạo phiên bản của My_class này và thử gọi class_method[] này

obj = My_class[]
obj.class_method[]

Điều này cũng hoạt động. Chúng ta có thể truy cập các phương thức của lớp với sự trợ giúp của một thể hiện/đối tượng của lớp. Nhưng chúng ta có thể truy cập trực tiếp các phương thức của lớp mà không cần tạo một thể hiện hoặc đối tượng của lớp. Hãy xem làm thế nào

Không cần tạo một thể hiện của lớp, bạn có thể gọi phương thức của lớp bằng – Tên_lớp. Tên_phương_thức[]

Nhưng điều này là không thể với các phương thức thể hiện khi chúng ta phải tạo một thể hiện của lớp để gọi các phương thức thể hiện. Hãy xem điều gì sẽ xảy ra khi chúng ta cố gắng gọi trực tiếp phương thức thể hiện

My_class.instance_method[]

Chúng tôi gặp lỗi khi thiếu một đối số vị trí – “bản thân”. Và điều hiển nhiên là vì các phương thức thể hiện chấp nhận một thể hiện của lớp làm tham số mặc định. Và bạn không cung cấp bất kỳ trường hợp nào làm đối số. Mặc dù điều này có thể bỏ qua tên đối tượng làm đối số

obj = My_class[]
obj.instance_method[]
0

Đáng kinh ngạc

3. Phương thức tĩnh

Các phương thức tĩnh không thể truy cập dữ liệu lớp. Nói cách khác, họ không cần truy cập dữ liệu của lớp. Họ tự cung tự cấp và có thể tự làm việc. Vì chúng không được gắn với bất kỳ thuộc tính lớp nào nên chúng không thể lấy hoặc đặt trạng thái cá thể hoặc trạng thái lớp

Để xác định một phương thức tĩnh, chúng ta có thể sử dụng trình trang trí @staticmethod [theo cách tương tự, chúng tôi đã sử dụng trình trang trí @classmethod]. Không giống như các phương thức thể hiện và phương thức lớp, chúng ta không cần truyền bất kỳ tham số đặc biệt hoặc mặc định nào. Hãy nhìn vào việc thực hiện

obj = My_class[]
obj.instance_method[]
1

Và thực hiện

Lưu ý rằng chúng tôi không có bất kỳ tham số mặc định nào trong trường hợp này. Bây giờ chúng ta gọi các phương thức tĩnh như thế nào?

obj = My_class[]
obj.instance_method[]
2

Và chúng ta có thể gọi trực tiếp các phương thức tĩnh mà không cần tạo đối tượng/thể hiện của lớp

Bạn có thể nhận thấy đầu ra giống nhau khi sử dụng cả hai cách gọi phương thức tĩnh

Dưới đây là tóm tắt về lời giải thích mà chúng tôi đã thấy

    • Một phương thức thể hiện biết thể hiện của nó [và từ đó, nó là lớp]
    • Một phương thức lớp biết lớp của nó
    • Một phương thức tĩnh không biết lớp hoặc thể hiện của nó

Khi nào nên sử dụng phương pháp Python nào?

Các phương thức thể hiện là các phương thức được sử dụng phổ biến nhất. Ngay cả khi đó, vẫn khó biết khi nào bạn có thể sử dụng các phương thức lớp hoặc phương thức tĩnh. Lời giải thích sau đây sẽ thỏa mãn trí tò mò của bạn

Phương thức lớp - Việc sử dụng phổ biến nhất các phương thức lớp là để tạo các phương thức xuất xưởng. Các phương thức xuất xưởng là những phương thức trả về một đối tượng lớp [như hàm tạo] cho các trường hợp sử dụng khác nhau. Hãy hiểu điều này bằng cách sử dụng ví dụ đã cho

obj = My_class[]
obj.instance_method[]
3

Ở đây như bạn có thể thấy, phương thức lớp đang sửa đổi trạng thái của lớp. Nếu chúng ta có năm sinh của bất kỳ con chó nào thay vì tuổi, thì với sự trợ giúp của phương pháp này, chúng ta có thể sửa đổi các thuộc tính của lớp

Hãy kiểm tra điều này

obj = My_class[]
obj.instance_method[]
4

Ở đây chúng tôi đã xây dựng một đối tượng của lớp. Điều này có hai tham số tên và tuổi. Khi in các thuộc tính của lớp, chúng tôi nhận được Bruno và 1 làm đầu ra, đó là các giá trị chúng tôi đã cung cấp

obj = My_class[]
obj.instance_method[]
5

Ở đây, chúng ta đã xây dựng một đối tượng khác của lớp Dog bằng phương thức lớp Year[]. Phương thức Year[] lấy lớp Person làm tham số đầu tiên cls và trả về hàm tạo bằng cách gọi cls[name, date. hôm nay[]. năm – năm], tương đương với Dog[tên, ngày. hôm nay[]. năm năm]

Như bạn có thể thấy khi in các thuộc tính tên và tuổi, chúng tôi đã nhận được tên mà chúng tôi đã cung cấp và tuổi được chuyển đổi từ năm sinh bằng phương thức lớp

Phương thức tĩnh - Chúng được sử dụng để tạo các hàm tiện ích. Để hoàn thành các tác vụ lập trình thông thường, chúng tôi sử dụng các hàm tiện ích. Một ví dụ đơn giản có thể là

obj = My_class[]
obj.instance_method[]
6

Bạn có thể thấy trường hợp sử dụng của phương thức tĩnh này rất rõ ràng, thêm hai số đã cho làm tham số. Bất cứ khi nào bạn phải cộng hai số, bạn có thể gọi trực tiếp phương thức này mà không cần lo lắng về việc xây dựng đối tượng

Ghi chú kết thúc

Trong bài viết này, chúng ta đã tìm hiểu về các phương thức Python, các loại phương thức và cách triển khai từng phương thức

Chủ Đề