2012-01-11 23 views
5

Tôi đang làm việc với một lớp và đang cố gắng gọi phương thức trợ giúp từ bên trong lớp học. Tôi nhận được mã sau đây để làm việc, nhưng tôi không chắc chắn lý do tại sao tôi phải vượt qua "tự" như một đối số cho chức năng trợ giúp khi tôi gọi nó khi tôi đã có "tự" như một đối số trong phương pháp. Có một lý do mà tôi phải vượt qua nó như là một đối số khi tôi gọi Tần số .__ helper (tự, ghi) trong ví dụ dưới đây?tự chuyển mình làm đối số trong phương thức trợ giúp

Cảm ơn!

class Frequency: 

    def __init__(self, record): 
     self.record = record 

    def __helper(self, datalist) 
     do something to datalist... 

    def getFreq(self): 
     allrec = self.record 
     record = allrec[1].split(' ') 
     var = Frequency.__helper(self, record) 
     return var 

Trả lời

2

Cách đúng để gọi phương thức chỉ

var = self.__helper(record) 

Đó làm điều tương tự, nhưng trong một thời trang trực quan hơn là.

2

Có, trong trường hợp này bạn phải làm, vì bạn không khai báo hàm là @staticmethod. Khi một phương thức không tĩnh, nó yêu cầu một cá thể được truyền.

Nếu bạn làm điều gì đó như:

class Frequency: 
    @staticmethod 
    def test(datalist): 
     pass 

bạn sẽ không được yêu cầu để xác định tự vào danh sách đối số.

Các vấn đề liên quan