30/09/2018, 17:31

Hàm __init__ và self trong python dùng để làm gì?

cho e hỏi là hàm init trong python là để làm j ạ??
tiện hỏi luôn là tại sao các hàm trong class cứ phải có self là sao ạ
ví dụ đoạn này ạ:
class MyStuff(object):

def __init__(self):
    self.tangerine = "And now a thousand years between"

def apple(self):
    print "I AM CLASSY APPLES!"

e cảm ơn.

Mai Anh Dũng viết 19:33 ngày 30/09/2018

cho e hỏi là hàm init trong python là để làm j ạ??

__init__ là hàm dựng hay constructor của một class. Khi một thực thể (instance) của một class được tạo ra thì hàm này sẽ được thực thi đầu tiên và một cách tự động

tiện hỏi luôn là tại sao các hàm trong class cứ phải có self là sao ạ

self giống như this trong các ngôn ngữ hướng đối tượng khác. Đối với các ngôn ngữ khác thì mình không cần phải truyền this hoặc self vào. Nhưng Python yêu cầu phải như thế.

self trong Python không nhất thiết phải là self mà có thể là dat hoặc dnh cũng được. Nhưng người ta sử dụng self để thể hiện đây là thực thể của object. Trong tiếng Anh self có thể hiểu là bản thân nó. Điều này giúp việc đọc code dễ hơn.

nguyenductuan viết 19:43 ngày 30/09/2018

e hiểu rồi, cảm ơn a @ltd :))

Mai Anh Dũng viết 19:37 ngày 30/09/2018

Em biết cách accept câu trả lời của anh là câu trả lời em chấp nhận không? Bấm vào nút trên post của anh nhé.

Mạnh viết 19:33 ngày 30/09/2018

cũng đang học class này , thấy hơn khó , chưa hiểu vẫn đề lắm

htl@PyMI.vn viết 19:41 ngày 30/09/2018

Khi một class được tạo ra thì hàm này sẽ được thực thi đầu tiên và một cách tự động

Khi một object được tạo ra (instantiate) thì đúng hơn, còn class được tạo ra khi code chạy qua đoạn định nghĩa class rồi

Mai Anh Dũng viết 19:45 ngày 30/09/2018

Updated with thanks

Ha Duy Phuong viết 19:39 ngày 30/09/2018

class Mystuff(object):
def init(self):
self.tangerine = “And now a thousand years between”
print self.tangerine

def apple(self):
	print "I AM CLASSY APPLES!"

Em dang tu hoc python theo Learn Python the Hard way toi ex40 gap kho khan nho anh chi giup do:

  • object o treen la bao gom hai def init va def apple phai khong ?
  • tangerine = “And now a thousand years between” co phai la bien co noi dung trong “And now a thousand years between”
  • khi chay thu class nay thi e chi in duoc ket qua la “And now a thousand years between” ma khong in ra duoc “I AM CLASSY APPLES!”
    -“init là hàm dựng hay constructor của một class. Khi một thực thể (instance) của một class được tạo ra thì hàm này sẽ được thực thi đầu tiên và một cách tự động” theo tra loi cua a Dat nhung e van khong hieu lam. Thuc the o day la gi?
  • seft la de truyen cai tangerine = “And now a thousand years between” vo cai init
Bài liên quan
0