Hướng dẫn how do you access one variable from another class in python? - làm cách nào để bạn truy cập một biến từ một lớp khác trong python?

Tôi đang viết một chương trình đang sử dụng nhiều lớp. Tôi có một lớp dành riêng để xác định các giá trị cho một tập hợp các biến. Sau đó tôi muốn có thể truy cập các giá trị của các biến đó với các lớp khác. Mã của tôi trông như sau:

class ClassA(object):
    def __init__(self):
        self.var1 = 1
        self.var2 = 2

    def methodA(self):
        self.var1 = self.var1 + self.var2
        return self.var1


class ClassB(ClassA):
    def __init__(self):
        self.var1 = ?
        self.var2 = ?

object1 = ClassA()
sum = object1.methodA()
print sum

Tôi sử dụng Classa để khởi tạo 2 biến (var1 và var2). Sau đó, tôi sử dụng Phương thức để thêm chúng, lưu kết quả dưới dạng var1 (tôi nghĩ điều này sẽ tạo ra var1 = 3 và var2 = 2). Điều tôi muốn biết là làm thế nào tôi có lớp sau đó có thể nhận được các giá trị cho var1 và var2 từ classa?

Hướng dẫn how do you access one variable from another class in python? - làm cách nào để bạn truy cập một biến từ một lớp khác trong python?

That1Guy

6.8794 Huy hiệu vàng48 Huy hiệu bạc57 Huy hiệu đồng4 gold badges48 silver badges57 bronze badges

Đã hỏi ngày 15 tháng 11 năm 2013 lúc 4:54Nov 15, 2013 at 4:54

1

var1var2 là các biến thể hiện. Điều đó có nghĩa là bạn phải gửi phiên bản của

class ClassA(object):
    def __init__(self):
        self.var1 = 1
        self.var2 = 2

    def methodA(self):
        self.var1 = self.var1 + self.var2
        return self.var1



class ClassB(ClassA):
    def __init__(self, class_a):
        self.var1 = class_a.var1
        self.var2 = class_a.var2

object1 = ClassA()
sum = object1.methodA()
object2 = ClassB(object1)
print sum
0 đến
class ClassA(object):
    def __init__(self):
        self.var1 = 1
        self.var2 = 2

    def methodA(self):
        self.var1 = self.var1 + self.var2
        return self.var1



class ClassB(ClassA):
    def __init__(self, class_a):
        self.var1 = class_a.var1
        self.var2 = class_a.var2

object1 = ClassA()
sum = object1.methodA()
object2 = ClassB(object1)
print sum
1 để ClassB truy cập nó, tức là:

class ClassA(object):
    def __init__(self):
        self.var1 = 1
        self.var2 = 2

    def methodA(self):
        self.var1 = self.var1 + self.var2
        return self.var1



class ClassB(ClassA):
    def __init__(self, class_a):
        self.var1 = class_a.var1
        self.var2 = class_a.var2

object1 = ClassA()
sum = object1.methodA()
object2 = ClassB(object1)
print sum

Mặt khác - nếu bạn sử dụng các biến lớp, bạn có thể truy cập var1 và var2 mà không cần gửi Object1 làm tham số đến ClassB.

class ClassA(object):
    var1 = 0
    var2 = 0
    def __init__(self):
        ClassA.var1 = 1
        ClassA.var2 = 2

    def methodA(self):
        ClassA.var1 = ClassA.var1 + ClassA.var2
        return ClassA.var1



class ClassB(ClassA):
    def __init__(self):
        print ClassA.var1
        print ClassA.var2

object1 = ClassA()
sum = object1.methodA()
object2 = ClassB()
print sum

Tuy nhiên, lưu ý rằng các biến lớp được chia sẻ giữa tất cả các trường hợp của lớp.

Đã trả lời ngày 15 tháng 11 năm 2013 lúc 4:59Nov 15, 2013 at 4:59

Hướng dẫn how do you access one variable from another class in python? - làm cách nào để bạn truy cập một biến từ một lớp khác trong python?

Steinar Limasteinar LimaSteinar Lima

7.4632 Huy hiệu vàng37 Huy hiệu bạc40 Huy hiệu đồng2 gold badges37 silver badges40 bronze badges

1

Bạn có thể giải thích lý do tại sao bạn muốn làm điều này?

Bạn đang chơi xung quanh với các biến/thuộc tính thể hiện sẽ không di chuyển từ lớp này sang lớp khác (chúng thậm chí không phải là ____10, mà là một trường hợp cụ thể của

class ClassA(object):
    def __init__(self):
        self.var1 = 1
        self.var2 = 2

    def methodA(self):
        self.var1 = self.var1 + self.var2
        return self.var1



class ClassB(ClassA):
    def __init__(self, class_a):
        self.var1 = class_a.var1
        self.var2 = class_a.var2

object1 = ClassA()
sum = object1.methodA()
object2 = ClassB(object1)
print sum
0 mà bạn đã tạo khi bạn viết
class ClassA(object):
    def __init__(self):
        self.var1 = 1
        self.var2 = 2

    def methodA(self):
        self.var1 = self.var1 + self.var2
        return self.var1



class ClassB(ClassA):
    def __init__(self, class_a):
        self.var1 = class_a.var1
        self.var2 = class_a.var2

object1 = ClassA()
sum = object1.methodA()
object2 = ClassB(object1)
print sum
4). Nếu bạn muốn có các thay đổi trong một lớp hiển thị trong một lớp khác, bạn có thể sử dụng các biến lớp:

class ClassA(object):
   var1 = 1
   var2 = 2
   @classmethod
   def method(cls):
       cls.var1 = cls.var1 + cls.var2
       return cls.var1

Trong kịch bản này,

class ClassA(object):
    def __init__(self):
        self.var1 = 1
        self.var2 = 2

    def methodA(self):
        self.var1 = self.var1 + self.var2
        return self.var1



class ClassB(ClassA):
    def __init__(self, class_a):
        self.var1 = class_a.var1
        self.var2 = class_a.var2

object1 = ClassA()
sum = object1.methodA()
object2 = ClassB(object1)
print sum
1 sẽ nhận các giá trị trên
class ClassA(object):
    def __init__(self):
        self.var1 = 1
        self.var2 = 2

    def methodA(self):
        self.var1 = self.var1 + self.var2
        return self.var1



class ClassB(ClassA):
    def __init__(self, class_a):
        self.var1 = class_a.var1
        self.var2 = class_a.var2

object1 = ClassA()
sum = object1.methodA()
object2 = ClassB(object1)
print sum
0 từ kế thừa. Sau đó, bạn có thể truy cập các biến lớp thông qua
class ClassA(object):
    def __init__(self):
        self.var1 = 1
        self.var2 = 2

    def methodA(self):
        self.var1 = self.var1 + self.var2
        return self.var1



class ClassB(ClassA):
    def __init__(self, class_a):
        self.var1 = class_a.var1
        self.var2 = class_a.var2

object1 = ClassA()
sum = object1.methodA()
object2 = ClassB(object1)
print sum
7,
class ClassA(object):
    def __init__(self):
        self.var1 = 1
        self.var2 = 2

    def methodA(self):
        self.var1 = self.var1 + self.var2
        return self.var1



class ClassB(ClassA):
    def __init__(self, class_a):
        self.var1 = class_a.var1
        self.var2 = class_a.var2

object1 = ClassA()
sum = object1.methodA()
object2 = ClassB(object1)
print sum
8 hoặc thậm chí từ một phiên bản
class ClassA(object):
    def __init__(self):
        self.var1 = 1
        self.var2 = 2

    def methodA(self):
        self.var1 = self.var1 + self.var2
        return self.var1



class ClassB(ClassA):
    def __init__(self, class_a):
        self.var1 = class_a.var1
        self.var2 = class_a.var2

object1 = ClassA()
sum = object1.methodA()
object2 = ClassB(object1)
print sum
9 (với điều kiện là bạn chưa thêm một phương thức thể hiện var1 sẽ được giải quyết trước khi biến lớp trong Tra cứu thuộc tính.

Tôi phải biết thêm một chút về trường hợp sử dụng cụ thể của bạn trước khi tôi biết nếu đây là một quá trình hành động mà tôi thực sự muốn giới thiệu mặc dù ...

Đã trả lời ngày 15 tháng 11 năm 2013 lúc 5:00Nov 15, 2013 at 5:00

Hướng dẫn how do you access one variable from another class in python? - làm cách nào để bạn truy cập một biến từ một lớp khác trong python?

Mgilsonmgilsonmgilson

290K62 Huy hiệu vàng609 Huy hiệu bạc677 Huy hiệu Đồng62 gold badges609 silver badges677 bronze badges

1

var1 và var2 là một biến thể hiện của classa. Tạo một thể hiện của ClassB và khi gọi Phương thức, nó sẽ kiểm tra phương thức trong lớp con (lớpb) trước, nếu phương thức không có trong lớp, bạn cần gọi classa bằng cách sử dụng phương thức Super () sẽ giúp bạn có tất cả các phương thức thực hiện trong Classa. Bây giờ, bạn có thể truy cập tất cả các phương thức và thuộc tính của ClassB.ClassA. Create an Instance of ClassB and when calling the methodA it will check the methodA in Child class (ClassB) first, If methodA is not present in ClassB you need to invoke the ClassA by using the super() method which will get you all the methods implemented in ClassA. Now, you can access all the methods and attributes of ClassB.

class ClassA(object):
    def __init__(self):
        self.var1 = 1
        self.var2 = 2

    def methodA(self):
        self.var1 = self.var1 + self.var2
        return self.var1


class ClassB(ClassA):
    def __init__(self):
        super().__init__()
        print("var1",self.var1)
        print("var2",self.var2)


object1 = ClassB()
sum = object1.methodA()
print(sum)

Đã trả lời ngày 29 tháng 8 năm 2020 lúc 14:44Aug 29, 2020 at 14:44

1

class ClassA(object):
    def __init__(self):
        self.var1 = 1
        self.var2 = 2
    def method(self):
        self.var1 = self.var1 + self.var2
        return self.var1

class ClassB(ClassA):
    def __init__(self):
        ClassA.__init__(self)

object1 = ClassA() 
sum = object1.method()  
object2 = ClassB() 
print sum

Đã trả lời ngày 15 tháng 11 năm 2013 lúc 5:57Nov 15, 2013 at 5:57

0

Chúng ta có thể truy cập/vượt qua các đối số/biến từ lớp này sang lớp khác bằng cách sử dụng tham chiếu đối tượng.

#Class1
class Test:
    def __init__(self):
        self.a = 10
        self.b = 20
        self.add = 0

    def calc(self):
        self.add = self.a+self.b

#Class 2
class Test2:
    def display(self):
        print('adding of two numbers: ',self.add)
#creating object for Class1
obj = Test()
#invoking calc method()
obj.calc()
#passing class1 object to class2
Test2.display(obj)

Hướng dẫn how do you access one variable from another class in python? - làm cách nào để bạn truy cập một biến từ một lớp khác trong python?

Đã trả lời ngày 19 tháng 1 năm 2020 lúc 5:07Jan 19, 2020 at 5:07

Chỉ cần tạo các biến trong một lớp. Và sau đó kế thừa từ lớp đó để truy cập các biến của nó. Nhưng trước khi truy cập chúng, lớp cha phải được gọi để bắt đầu các biến.

class a:
    def func1(self):
        a.var1 = "Stack "

class b:
    def func2(self):
        b.var2 = "Overflow"

class c(a,b):
    def func3(self):
        c.var3 = a.var1 + b.var2
        print(c.var3)

a().func1()
b().func2()
c().func3()

Đã trả lời ngày 30 tháng 11 năm 2020 lúc 8:40Nov 30, 2020 at 8:40

Hướng dẫn how do you access one variable from another class in python? - làm cách nào để bạn truy cập một biến từ một lớp khác trong python?

Làm thế nào để bạn sử dụng các biến từ lớp này sang lớp khác?

Bạn có thể tạo đối tượng của một lớp và sử dụng đối tượng này mà bạn gọi là các biến và phương thức lớp khác, nhưng đảm bảo tính truy cập sẽ được công khai.Chúng ta có thể sử dụng giao diện lớp A và bằng cách triển khai A vào B, có thể sử dụng biến của lớp A thành B.create the object of one class and using this object you call other class variables and methods, but make sure the accessiblity will be as public. We can use interface class A and by implementing A into B, can use the variable of class A into B.

Làm thế nào để bạn truyền dữ liệu từ lớp này sang lớp khác trong Python?

Chúng ta có thể truy cập/chuyển các đối số/biến từ lớp này sang lớp khác bằng cách sử dụng tham chiếu đối tượng ...
Nhận một biến từ lớp A, sử dụng đối tượng của nó ..
Chuyển nó như một đối số cho một hàm của lớp B (truy cập hàm này bằng cách sử dụng đối tượng của lớp B) ..
Hàm này sẽ chuyển giá trị của biến này cho một biến trong lớp B ..

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

Để tạo một lớp kế thừa từ một lớp khác, sau tên lớp, bạn sẽ đặt dấu ngoặc đơn và sau đó liệt kê bất kỳ lớp nào mà lớp của bạn kế thừa.Trong một định nghĩa chức năng, dấu ngoặc đơn sau tên hàm biểu thị các đối số mà hàm chấp nhận.after the class name you'll put parentheses and then list any classes that your class inherits from. In a function definition, parentheses after the function name represent arguments that the function accepts.