Hướng dẫn how do you pass a class object as a parameter in python? - làm thế nào để bạn chuyển một đối tượng lớp làm tham số trong python?

Tôi có một mô -đun bao gồm các định nghĩa cho hai lớp khác nhau trong Python. Làm cách nào để sử dụng các đối tượng của một lớp làm đối số của lớp kia? Giả sử, tôi có định nghĩa lớp cho người lái và xe hơi, và Tuen muốn có một đối tượng trình điều khiển như một đối số cho một đối tượng xe hơi.

Hỏi ngày 11 tháng 8 năm 2010 lúc 8:32Aug 11, 2010 at 8:32

2

Cập nhật: OP đang cố gắng vượt qua một thể hiện đối tượng tại thời điểm định nghĩa lớp [hoặc vì vậy tôi nghĩ sau khi thấy nhận xét của anh ấy]. Câu trả lời dưới đây không được áp dụng.: The OP is trying to pass an object instance at class definition time [or so I think after seeing his comment]. The answer below is not applicable.

Đây có phải là những gì bạn đang cố gắng để đạt được?

class Car:
    def __init__[self, driver]:
        self.driver = driver

class Driver:
    pass

driver = Driver[]
car = Car[driver]

Đã trả lời ngày 11 tháng 8 năm 2010 lúc 8:38Aug 11, 2010 at 8:38

Manoj Govindanmanoj GovindanManoj Govindan

69,7K21 Huy hiệu vàng131 Huy hiệu bạc138 Huy hiệu đồng21 gold badges131 silver badges138 bronze badges

2

Tạo một thể hiện của một đối tượng trình điều khiển và chuyển nó cho hàm tạo của xe.

e.g.,

>>> d = Driver[]
>>> c = Car[d]

hoặc công bằng

>>> c = Car[Driver[]]

[edit]

Vì vậy, bạn đang cố gắng sử dụng một thể hiện của trình điều khiển khi bạn xác định một lớp? Tôi vẫn không chắc tôi hiểu bạn đang cố gắng làm gì nhưng có vẻ như một loại trang trí nào đó.

def OwnedCar[driver]:
    class Car[object]:
        owner = driver
        #...
    return Car

steve = Driver[]
SteveCar = OwnedCar[steve]

Đã trả lời ngày 11 tháng 8 năm 2010 lúc 8:37Aug 11, 2010 at 8:37

Jeff Mercadojeff MercadoJeff Mercado

124K31 Huy hiệu vàng239 Huy hiệu bạc258 Huy hiệu Đồng31 gold badges239 silver badges258 bronze badges

2

Nếu tôi hiểu câu hỏi của bạn, điều này sẽ giúp bạn cho rằng chúng tôi có ngân hàng lớp: '' 'Sau khi xây dựng, chúng tôi có một phương thức khác' '' Def [self, số lượng, đối tượng]: #Object được truyền để tham chiếu một đối tượng BankAccount. tín dụng [tự, số tiền] đối tượng.debit [số tiền]

Phương thức gọi Bank1 = BankAccount [] Bank1.Transfer [2000, ObjectName]

Đã trả lời ngày 6 tháng 5 năm 2014 lúc 4:05May 6, 2014 at 4:05

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

Đối tượng vượt qua & trở lại

Để fucntion hoặc hàm tạo thay vì truyền tham số đơn giản, một đối tượng cũng có thể được truyền.

Ví dụ về Pass và trả về đối tượng như sau

class Box:
length=0
breadth=0  def change[self,box1]:   box1.length=box1.length*2;
  box1.breadth=box1.breadth*2   return box1 b1= Box[] b1.length=100
b1.breadth=50
b2=Box[]
boxChanged=b2.change[b1]
print["changed length= ",boxChanged.length ," changed breadth=",boxChanged.breadth]

& nbsp; & nbsp; đầu ra: chiều dài thay đổi = 200 thay đổi chiều rộng = 100

Làm thế nào để bạn sử dụng một đối tượng lớp làm tham số trong Python?

Lúc đầu, đối tượng lớp Python, bạn đặt tên của đối tượng mới được theo sau bởi toán tử gán và tên của lớp với các tham số [như được định nghĩa trong hàm tạo]. Hãy nhớ rằng, số và loại tham số phải tương thích với các tham số nhận được trong hàm hàm tạo.put the name of the new object which is followed by the assignment operator and the name of the class with parameters [as defined in the constructor]. Remember, the number and type of parameters should be compatible with the parameters received in the constructor function.

Làm thế nào để bạn vượt qua một đối tượng lớp dưới dạng tham số?

Vượt qua một đối tượng dưới dạng tham số rất giống với bất kỳ tham số nào khác.Bạn chỉ cần sử dụng tên của lớp đối tượng, trong trường hợp của bạn, thay cho bất kỳ loại biến nào khác.Nó cũng giống như cách bạn sẽ xác định các biến thể hiện của loại trái cây trong lớp Fruitbasket của bạn.use the name of the object class, in your case Fruit , in place of any other variable type. It's also a lot like how you would define the instance variables of type Fruit in your FruitBasket class.

Chúng ta có thể truyền đối tượng dưới dạng tham số không?

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ả lại 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ể sử dụng một lớp làm tham số trong Python không?

Một phương thức lớp vẫn có đối tượng gọi của nó là tham số đầu tiên, nhưng theo quy ước, chúng tôi đổi tên tham số này từ bản thân thành CLS.Nếu chúng ta gọi phương thức lớp từ một thể hiện, tham số này sẽ chứa đối tượng phiên bản, nhưng nếu chúng ta gọi nó từ lớp, nó sẽ chứa đối tượng lớp., but by convention we rename this parameter from self to cls . If we call the class method from an instance, this parameter will contain the instance object, but if we call it from the class it will contain the class object.

Bài Viết Liên Quan

Chủ Đề