Hướng dẫn can we pass class objects as function arguments in python? - chúng ta có thể chuyển các đối tượng lớp làm đối số hàm trong python không?

Bạn không chuyển tên của một lớp, bạn đang truyền tham chiếu đến lớp. Một lớp là một đối tượng giống như mọi thứ khác. Hãy nghĩ về nó như một chức năng trả về một đối tượng khác. Bạn có thể truyền một lớp dưới dạng đối số giống như bạn có thể chuyển một hàm, chuỗi hoặc bất kỳ đối tượng nào khác.

Đối với những gì hàm được gọi có thể làm với nó - nó tạo ra các trường hợp của lớp đó. Trong trường hợp này, hàm được gọi không thực sự quan tâm đến lớp mà nó sử dụng, miễn là nó thực hiện một giao diện cụ thể. Vì vậy, hàm được gọi không bao giờ thấy tên của lớp, nó chỉ được nói cách tạo một thể hiện của nó (nhờ vào việc được cung cấp một tham chiếu đến lớp)

Trong trường hợp của một máy chủ, nó cần tạo một thể hiện mới của một số đối tượng cho mọi kết nối với máy chủ. Vì vậy, bạn cung cấp cho nó lớp bạn muốn nó sử dụng và nó tạo ra các phiên bản cho mỗi kết nối. Điều này cho phép máy chủ tạo các đối tượng khi nó cần chúng, thay vì yêu cầu bạn tạo chúng trước thời hạn.

class Vehicle:
    def __init__(self):
        self.trucks = []

    def add_truck(self, truck):
        self.trucks.append(truck)


class Truck:
    def __init__(self, color):
        self.color = color

    def __repr__(self):
        return "{}".format(self.color)


def main():
    v = Vehicle()
    for t in 'Red Blue Black'.split():
        t = Truck(t)
        v.add_truck(t)
    print(v.trucks)


if __name__ == "__main__":
    main()

Trong ví dụ, có hai lớp xe và xe tải, đối tượng của xe tải lớp được truyền dưới dạng tham số cho phương pháp của xe lớp. Trong phương thức chính () đối tượng của xe được tạo. Sau đó, phương thức add_truck () của xe lớp được gọi và đối tượng của lớp xe tải được truyền dưới dạng tham số.

Đầu ra mẫu của chương trình trên.

2020-11-17T05: 06: 09+05: 302020-11-17T05: 06: 09+05: 30Amit Aroraccothon Lập trình TutororythonPractical Solution 2020-11-17T05:06:09+05:30 Amit Arora Python Programming Tutorial Python Practical Solution

Trang chủ »Python» Chương trình Python

Ở đây, chúng tôi sẽ viết một chương trình trong Python nơi chúng tôi sẽ chuyển một đối tượng làm đối số cho một phương thức và sau đó trả về một đối tượng khác là kết quả từ phương thức. Được gửi bởi Shivang Yadav, vào ngày 19 tháng 3 năm 2021program in Python where we will pass an object as argument to a method and then return another object as result from the method.
Submitted by Shivang Yadav, on March 19, 2021

Lớp trong Python là bản thiết kế của đối tượng sử dụng đối tượng nào được tạo.

Các đối tượng là các trường hợp của lớp trong Python có các trường và phương thức, tức là, các giá trị và các hàm liên quan.

Python cho phép các lập trình viên của nó chuyển các đối tượng cho phương thức. Và cũng trả về các đối tượng từ một phương thức. Đây là một chương trình để minh họa điều này,

Lập trình để truyền các đối tượng làm đối số và trả về các đối tượng từ chức năng

class TwoNum:
    def GetNum(self):
        self.__x = int(input("Enter value of x : "))
        self.__y = int(input("Enter value of y : "))

    def PutNum(self):
        print("value of x = ", self.__x,"value of y = ", self.__y, )

    def Add(self,T):
        R=TwoNum()
        R.__x=self.__x+T.__x
        R.__y=self.__y+T.__y
        return R

obj1 = TwoNum()
obj2 = TwoNum()
print("Enter values of object 1 ")
obj1.GetNum()
print("Enter values of object 2 ")
obj2.GetNum()
obj3 = obj1.Add(obj2)
print("Values of object 1 ")
obj1.PutNum()
print("Values of object 2 ")
obj2.PutNum()
print("Values of object 3 (sum object) ")
obj3.PutNum()

Output:

Enter values of object 1 
Enter value of x : 43
Enter value of y : 65
Enter values of object 2 
Enter value of x : 34
Enter value of y : 65
Values of object 1 
value of x =  43 value of y =  65
Values of object 2 
value of x =  34 value of y =  65
Values of object 3 (sum object) 
value of x =  77 value of y =  130

Chương trình 2: Chương trình chuyển các đối tượng làm đối số và trả về các đối tượng từ chức năng toán tử

class TwoNum:

    def GetNum(self):
        self.__x = int(input("Enter value of x : "))
        self.__y = int(input("Enter value of y : "))

    def PutNum(self):
        print("value of x = ", self.__x,"value of y = ", self.__y, )

    def __add__(self, T):
        R=TwoNum()
        R.__x=self.__x+T.__x
        R.__y=self.__y+T.__y
        return R

obj1 = TwoNum()
obj2 = TwoNum()
print("Enter values of object 1 ")
obj1.GetNum()
print("Enter values of object 2 ")
obj2.GetNum()
obj3 = obj1 + obj2
print("Values of object 1 ")
obj1.PutNum()
print("Values of object 2 ")
obj2.PutNum()
print("Values of object 3 (sum object) ")
obj3.PutNum()

Output:

Enter values of object 1 
Enter value of x : 43
Enter value of y : 65
Enter values of object 2 
Enter value of x : 234
Enter value of y : 56
Values of object 1 
value of x =  43 value of y =  65
Values of object 2 
value of x =  234 value of y =  56
Values of object 3 (sum object) 
value of x =  277 value of y =  121

Các chương trình Python Class & Object »



Chúng ta có thể vượt qua lớp dưới dạng đối số chức năng không?

Chuyển và trả về các đối tượng trong C ++ trong C ++, chúng ta có thể chuyển các đối tượng của lớp dưới dạng đối số và cũng trả về chúng từ một hàm giống như cách chúng ta vượt qua và trả về các biến khác.we can pass class's objects as arguments and also return them from a function the same way we pass and return other variables.

Bạn có thể chuyển một lớp cho một chức năng trong Python không?

Có của thô, bạn có thể vượt qua các lớp hoặc chức năng hoặc thậm chí các mô -đun ... def foo (): Truyền ở đây nó cung cấp địa chỉ cho Ex. ... def foo(): pass here it gives it address for ex.

Các đối tượng có được chuyển qua giá trị python không?

Trong Python vượt qua tham chiếu đối tượng, tham chiếu đối tượng được truyền theo giá trị.Một biến có thể được coi là một tên (hoặc tham chiếu) được gán cho một đối tượng và đối tượng có thể bị thay đổi (ví dụ: danh sách) hoặc bất biến (ví dụ: số nguyên).the object reference is passed by value. A variable can be thought of as a name (or reference) assigned to an object, and the object can be mutable (eg. list) or immutable (eg. integer).

Chúng ta có thể truyền một danh sách trong đối số chức năng trong Python không?

Bạn có thể gửi bất kỳ loại dữ liệu nào của đối số đến một hàm (chuỗi, số, danh sách, từ điển, v.v.) và nó sẽ được coi là cùng một loại dữ liệu bên trong hàm. (string, number, list, dictionary etc.), and it will be treated as the same data type inside the function.