Làm cách nào để gọi một hàm trong lớp python khác?

Các phương thức của lớp là các phương thức được gọi trên một lớp chứ không phải trên một thể hiện. Chúng thường được sử dụng như một phần của siêu mô hình đối tượng. Tôi. e, đối với mỗi lớp, một thể hiện của đối tượng lớp được xác định trong siêu mô hình được tạo. Các giao thức siêu mô hình cho phép tạo và xóa các lớp. Theo nghĩa này, chúng cung cấp chức năng giống như hàm tạo và hàm hủy được mô tả ở trên. Nhưng trong một số ngôn ngữ chẳng hạn như Common Lisp Object System [CLOS], siêu mô hình cho phép nhà phát triển dynami

Tôi có 2 lớp

class impute[model]:
    
    def __init__[self]:
        
        super[].__init__[]        
        for i in ['MasVnrType', 'BsmtQual', 'BsmtFinType1', 'GarageType', 'GarageFinish']:
            self.mode_impute[self.x, i]
        
    def mode_impute[self]:
        mode_val = self.df6[self.var].value_counts[].index[0]
        self.df6[self.var].fillna[mode_val, inplace = True]

m = impute[]
3 và
class impute[model]:
    
    def __init__[self]:
        
        super[].__init__[]        
        for i in ['MasVnrType', 'BsmtQual', 'BsmtFinType1', 'GarageType', 'GarageFinish']:
            self.mode_impute[self.x, i]
        
    def mode_impute[self]:
        mode_val = self.df6[self.var].value_counts[].index[0]
        self.df6[self.var].fillna[mode_val, inplace = True]

m = impute[]
4. Tôi đang định nghĩa một hàm
class impute[model]:
    
    def __init__[self]:
        
        super[].__init__[]        
        for i in ['MasVnrType', 'BsmtQual', 'BsmtFinType1', 'GarageType', 'GarageFinish']:
            self.mode_impute[self.x, i]
        
    def mode_impute[self]:
        mode_val = self.df6[self.var].value_counts[].index[0]
        self.df6[self.var].fillna[mode_val, inplace = True]

m = impute[]
5 bên trong
class impute[model]:
    
    def __init__[self]:
        
        super[].__init__[]        
        for i in ['MasVnrType', 'BsmtQual', 'BsmtFinType1', 'GarageType', 'GarageFinish']:
            self.mode_impute[self.x, i]
        
    def mode_impute[self]:
        mode_val = self.df6[self.var].value_counts[].index[0]
        self.df6[self.var].fillna[mode_val, inplace = True]

m = impute[]
4. Bây giờ tôi muốn gọi
class impute[model]:
    
    def __init__[self]:
        
        super[].__init__[]        
        for i in ['MasVnrType', 'BsmtQual', 'BsmtFinType1', 'GarageType', 'GarageFinish']:
            self.mode_impute[self.x, i]
        
    def mode_impute[self]:
        mode_val = self.df6[self.var].value_counts[].index[0]
        self.df6[self.var].fillna[mode_val, inplace = True]

m = impute[]
5 bên trong
class impute[model]:
    
    def __init__[self]:
        
        super[].__init__[]        
        for i in ['MasVnrType', 'BsmtQual', 'BsmtFinType1', 'GarageType', 'GarageFinish']:
            self.mode_impute[self.x, i]
        
    def mode_impute[self]:
        mode_val = self.df6[self.var].value_counts[].index[0]
        self.df6[self.var].fillna[mode_val, inplace = True]

m = impute[]
4. Làm thế nào tôi có thể gọi nó?

class impute[model]:
    
    def __init__[self]:
        super[].__init__[]
        pass
    
    def mode_impute[self]:
        mode_val = self.df6[self.var].value_counts[].index[0]
        self.df6[self.var].fillna[mode_val, inplace = True]
        
    for i in ['MasVnrType', 'BsmtQual', 'BsmtFinType1', 'GarageType', 'GarageFinish']:
        self.mode_impute[self.x, i]

Đoạn mã trên cho tôi lỗi

class impute[model]:
    
    def __init__[self]:
        
        super[].__init__[]        
        for i in ['MasVnrType', 'BsmtQual', 'BsmtFinType1', 'GarageType', 'GarageFinish']:
            self.mode_impute[self.x, i]
        
    def mode_impute[self]:
        mode_val = self.df6[self.var].value_counts[].index[0]
        self.df6[self.var].fillna[mode_val, inplace = True]

m = impute[]
9

CHỈNH SỬA 1

Tôi đã áp dụng các thay đổi như đề xuất trong nhận xét

class impute[model]:
    
    def __init__[self]:
        
        super[].__init__[]        
        for i in ['MasVnrType', 'BsmtQual', 'BsmtFinType1', 'GarageType', 'GarageFinish']:
            self.mode_impute[self.x, i]
        
    def mode_impute[self]:
        mode_val = self.df6[self.var].value_counts[].index[0]
        self.df6[self.var].fillna[mode_val, inplace = True]

m = impute[]

Dòng cuối cùng nơi tôi tạo một thể hiện của lớp cho tôi lỗi

class impute[model]:
    
    def __init__[self]:
        
        super[].__init__[]        
        for i in ['MasVnrType', 'BsmtQual', 'BsmtFinType1', 'GarageType', 'GarageFinish']:
            self.mode_impute[self.x, i]
        
    def mode_impute[self]:
        mode_val = self.df6[self.var].value_counts[].index[0]
        self.df6[self.var].fillna[mode_val, inplace = True]

m = impute[]
0

Tái bút. Tôi mới bắt đầu học OOP cho python nên vui lòng giải thích câu trả lời của bạn một cách đơn giản và dễ hiểu. Cảm ơn bạn

Trong hình bên dưới. Lệnh gọi hàm được thực hiện từ Hàm chính đến Hàm 1, Bây giờ trạng thái của Hàm chính được lưu trữ trong Ngăn xếp và việc thực thi Hàm chính được tiếp tục khi Hàm 1 trả về. Hàm 1 gọi Hàm 2 bây giờ Trạng thái của Hàm 1 được lưu trữ trong ngăn xếp và việc thực thi Hàm 1 sẽ được tiếp tục khi Hàm 2 trả về.  

Xem xét ví dụ dưới đây về lệnh gọi hàm. Hàm SumOfSquares gọi Hàm Square trả về bình phương của số.  

Python3




Function2 :  Hello
Function1 :  World
0

Function2 :  Hello
Function1 :  World
1

 

Function2 :  Hello
Function1 :  World
2
Function2 :  Hello
Function1 :  World
3

Function2 :  Hello
Function1 :  World
4
Function2 :  Hello
Function1 :  World
5

Function2 :  Hello
Function1 :  World
4
Function2 :  Hello
Function1 :  World
0

Function2 :  Hello
Function1 :  World
4
Function2 :  Hello
Function1 :  World
2
Function2 :  Hello
Function1 :  World
3______34
Function2 :  Hello
Function1 :  World
5

 

Function2 :  Hello
Function1 :  World
2
Function2 :  Hello
Function1 :  World
7

 

Function2 :  Hello
Function1 :  World
4
Function2 :  Hello
Function1 :  World
9

Function2 :  Hello
Function1 :  World
4
Function2 :  Hello
Function1 :  World
1

Function2 :  Hello
Function1 :  World
4
Function2 :  Hello
Function1 :  World
3
Function2 :  Hello
Function1 :  World
4
Function2 :  Hello
Function1 :  World
5

Function2 :  Hello
Function1 :  World
4
Function2 :  Hello
Function1 :  World
7
Function2 :  Hello
Function1 :  World
8
Function2 :  Hello
Function1 :  World
9
Function2 :  Hello
Function1 :  World
00
Function2 :  Hello
Function1 :  World
01

 

Function2 :  Hello
Function1 :  World
02
Function2 :  Hello
Function1 :  World
03

Function2 :  Hello
Function1 :  World
02
Function2 :  Hello
Function1 :  World
05
Function2 :  Hello
Function1 :  World
4
Function2 :  Hello
Function1 :  World
07

 

Function2 :  Hello
Function1 :  World
02
Function2 :  Hello
Function1 :  World
09

Function2 :  Hello
Function1 :  World
02
Function2 :  Hello
Function1 :  World
3
Function2 :  Hello
Function1 :  World
12______34
Function2 :  Hello
Function1 :  World
05

Function2 :  Hello
Function1 :  World
4
Function2 :  Hello
Function1 :  World
2
Function2 :  Hello
Function1 :  World
3

 

Function2 :  Hello
Function1 :  World
18

Function2 :  Hello
Function1 :  World
19
Function2 :  Hello
Function1 :  World
4
Function2 :  Hello
Function1 :  World
21
Function2 :  Hello
Function1 :  World
22
Function2 :  Hello
Function1 :  World
23
Function2 :  Hello
Function1 :  World
24
Function2 :  Hello
Function1 :  World
23
Function2 :  Hello
Function1 :  World
26
Function2 :  Hello
Function1 :  World
23
Function2 :  Hello
Function1 :  World
28
Function2 :  Hello
Function1 :  World
23
Function2 :  Hello
Function1 :  World
30
Function2 :  Hello
Function1 :  World
23
Function2 :  Hello
Function1 :  World
32
Function2 :  Hello
Function1 :  World
23
Function2 :  Hello
Function1 :  World
34
Function2 :  Hello
Function1 :  World
23
Function2 :  Hello
Function1 :  World
36
Function2 :  Hello
Function1 :  World
23
Function2 :  Hello
Function1 :  World
38
Function2 :  Hello
Function1 :  World
23
Function2 :  Hello
Function1 :  World
40
Function2 :  Hello
Function1 :  World
41

Bạn có thể gọi một hàm từ một lớp khác không?

Kết luận. Trong Java, một phương thức có thể được gọi từ một lớp khác dựa trên công cụ sửa đổi truy cập của nó . Ví dụ: một phương thức được tạo bằng công cụ sửa đổi công khai có thể được gọi từ bên trong cũng như bên ngoài lớp/gói. Phương thức được bảo vệ có thể được gọi từ một lớp khác bằng cách sử dụng tính kế thừa.

Bạn có thể chuyển một hàm cho một lớp Python không?

Các hàm có thể được truyền trong Python . Trên thực tế, có những hàm được tích hợp trong Python mong muốn các hàm được cung cấp dưới dạng một hoặc nhiều đối số của chúng để sau này chúng có thể gọi chúng.

Làm cách nào để gọi một phương thức từ một lớp khác mà không tạo đối tượng?

Các phương thức tĩnh là các phương thức trong Java có thể được gọi mà không cần tạo đối tượng của lớp. Chúng được tham chiếu bởi chính tên lớp hoặc tham chiếu tới Đối tượng của lớp đó.

Chủ Đề