Phương thức lớp python không có self

Phương thức tĩnh có thể được gọi mà không cần tạo đối tượng hoặc thể hiện. Chỉ cần tạo phương thức và gọi trực tiếp. Đây là một ý nghĩa trực giao với lập trình hướng đối tượng. chúng tôi gọi một phương thức mà không tạo đối tượng

Điều này chạy trực tiếp với khái niệm lập trình hướng đối tượng và có thể không được tán thành, nhưng đôi khi có thể hữu ích khi có một phương thức tĩnh

khóa học liên quan. Hoàn thành khóa học & bài tập lập trình Python

Thí dụ

phương pháp tĩnh

Thông thường, bạn muốn có các lệnh gọi hàm hoặc tạo một đối tượng mà bạn gọi các phương thức của nó. tuy nhiên bạn có thể làm một cái gì đó khác. gọi một phương thức trong một lớp mà không tạo một đối tượng

Trình diễn phương thức tĩnh bên dưới. Định nghĩa một lớp với một phương thức. Thêm từ khóa @staticmethod phía trên để làm cho nó tĩnh

1
2
3
4
5
6
class Music:
@staticmethod
def play[]:
print["*playing music*"]

Music.play[]

Các phương thức tĩnh bên trong một lớp

Một lớp có thể chứa cả phương thức tĩnh và không tĩnh. Nếu bạn muốn gọi các phương thức không tĩnh, bạn sẽ phải tạo một đối tượng. Mã bên dưới không hoạt động vì một đối tượng không được tạo

1
2
3
4
5
6
7
8
9
10
class Music:
@staticmethod
def play[]:
print["*playing music*"]

def stop[self]:
print["stop playing"]

Music.play[]
Music.stop[]

Gọi các phương thức tĩnh

Các phương thức lớp thông thường và các phương thức tĩnh có thể được trộn lẫn [tại sao không?].
Điều này có thể rất khó hiểu. chúng tôi sử dụng cả khái niệm hướng đối tượng và lập trình chức năng trộn lẫn trong một lớp.

Nếu bạn tạo một đối tượng, chúng ta có thể gọi các phương thức không tĩnh. Nhưng bạn cũng có thể gọi phương thức tĩnh mà không cần tạo đối tượng

1
2
3
4
5
6
7
8
9
10
11
12
class Music:
@staticmethod
def play[]:
print["*playing music*"]

def stop[self]:
print["stop playing"]

Music.play[]

obj = Music[]
obj.stop[]

Nhìn chung, các phương thức tĩnh là một khái niệm thú vị cần biết, nhưng trong thực tế, bạn hiếm khi sử dụng chúng. Đôi khi sử dụng các phương thức tĩnh có thể là dấu hiệu của việc có một thiết kế tồi

Nếu bạn đang làm việc với Python, không thể thoát khỏi từ “bản thân”. Nó được sử dụng trong các định nghĩa phương thức và khởi tạo biến. Phương thức self được sử dụng rõ ràng mỗi khi chúng ta định nghĩa một phương thức. Trong bài viết này, chúng ta sẽ tìm hiểu sâu về self trong Python theo trình tự sau

Việc sử dụng Self trong Python là gì?

Bản thân được sử dụng để đại diện cho thể hiện của lớp. Với từ khóa này, bạn có thể truy cập các thuộc tính và phương thức của lớp trong python. Nó liên kết các thuộc tính với các đối số đã cho. Lý do tại sao chúng tôi sử dụng self là vì Python không sử dụng cú pháp '@' để chỉ các thuộc tính thể hiện. Tham gia khóa học lập trình Master Python của chúng tôi để biết thêm. Trong Python, chúng tôi có các phương thức làm cho cá thể được truyền tự động nhưng không được nhận tự động

Thí dụ

class food[]:

# init method or constructor
def __init__[self, fruit, color]:
self.fruit = fruit
self.color = color

def show[self]:
print["fruit is", self.fruit]
print["color is", self.color ]

apple = food["apple", "red"]
grapes = food["grapes", "green"]

apple.show[]
grapes.show[]

đầu ra

Fruit is apple
color is red
Fruit is grapes
color is green

Lớp Python tự xây dựng

self cũng được sử dụng để chỉ một trường biến trong lớp. Hãy lấy một ví dụ và xem nó hoạt động như thế nào

________số 8

Trong ví dụ trên, self đề cập đến biến tên của toàn bộ lớp Person. Ở đây, nếu chúng ta có một biến trong một phương thức, self sẽ không hoạt động. Biến đó chỉ đơn giản tồn tại khi phương thức đó đang chạy và do đó, là cục bộ của phương thức đó. Để định nghĩa các trường toàn cục hoặc các biến của một lớp hoàn chỉnh, chúng ta cần định nghĩa chúng bên ngoài các phương thức của lớp

Tìm hiểu khóa đào tạo Python của chúng tôi tại các thành phố/quốc gia hàng đầu

Bản thân có phải là từ khóa không?

bản thân được sử dụng ở những nơi khác nhau và thường được coi là một từ khóa. Nhưng không giống như trong C++, self không phải là một từ khóa trong Python

self là một tham số trong hàm và người dùng có thể sử dụng một tên tham số khác thay cho nó. Mặc dù nên sử dụng self vì nó làm tăng khả năng đọc mã

Thí dụ

class this_is_class:
def show[in_place_of_self]:
print["It is not a keyword "
"and you can use a different keyword"]

object = this_is_class[]
object.show[]

đầu ra

class Music:
@staticmethod
def play[]:
print["*playing music*"]

Music.play[]
0

Với điều này, chúng tôi đã đi đến cuối bài viết của chúng tôi. Tôi hy vọng bạn đã hiểu cách sử dụng self và cách nó hoạt động trong Python

Hãy xem khóa học Chứng chỉ Python của Edureka. Khóa đào tạo này được thiết kế dành cho sinh viên và chuyên gia muốn trở thành Lập trình viên Python. Khóa học được thiết kế để giúp bạn bắt đầu lập trình Python và đào tạo bạn về cả khái niệm cốt lõi và nâng cao

Có một câu hỏi cho chúng tôi?

Chúng ta có thể tạo lớp không có self trong Python không?

Các phương thức của lớp không cần self làm đối số, nhưng chúng cần một tham số gọi là cls . Đây là viết tắt của lớp và giống như bản thân, được Python tự động chuyển vào. Các phương thức lớp được tạo bằng trình trang trí @classmethod.

Điều gì xảy ra nếu bạn không sử dụng self trong Python?

Nếu không có đối số tự, thì cùng một lớp không thể chứa thông tin cho cả hai đối tượng này. Tuy nhiên, do class chỉ là bản thiết kế nên self cho phép truy cập các thuộc tính và phương thức của từng đối tượng trong python. Điều này cho phép mỗi đối tượng có các thuộc tính và phương thức riêng

Liệu một phương pháp lớp cần tự?

Các phương thức thể hiện cần một thể hiện của lớp và có thể truy cập thể hiện đó thông qua tự. Các phương thức của lớp không cần thể hiện của lớp . Họ không thể truy cập thể hiện [ self ] nhưng họ có quyền truy cập vào chính lớp thông qua cls. Các phương thức tĩnh không có quyền truy cập vào cls hoặc self.

Có phải mọi chức năng trong Python đều cần self?

Nếu bạn đang làm việc với Python, không thể thoát khỏi từ “bản thân”. Nó được sử dụng trong các định nghĩa phương thức và khởi tạo biến. Phương thức self được sử dụng rõ ràng mỗi khi chúng ta định nghĩa một phương thức .

Chủ Đề