如何在另一类的方法中使用一类的对象?

法希姆·阿桑(Fahim Ahsan)

一般来说,我对Python和OOP还是很陌生。我发现了一个问题,要求我使2个类使用从一个类创建的对象作为另一个类的参数。问题指出,我必须在不更改给定代码的情况下制作类,构造函数和方法以获得示例输出。我的代码:

class B:
    def __init__(self,x):
        self.__x=x      #private variable
    def method(self,y):
        self.__y=y      #private variable
    def details(self):
        print(f'x = {self.__x}') #private variable
        print(self.__y)
class A:
    def __init__(self,z):
        self.z=z
#==================================
#This can't be changed.
obj1=A('a')
obj2=A('b')
obj3=B('x')
obj3.method(obj1)
obj3.method(obj2)
obj3.details()

但这给了我对象obj1和obj2的内存地址,而不是值a和b。我还尝试采用一个空字符串,然后将a和b隐含到它,但是对象类型不能用str隐隐。所以,我现在基本上卡住了。任何帮助将不胜感激。谢谢。

示例输出为:

x = x
a
b
wp-overwatch.com

代替print(self.__y)您需要做的print(self.__y.z)就是获取对象存储在其中的值z

但是要获得该示例输出,您必须跟踪传递给该obj3.method方法的所有对象,而不仅仅是最后一个对象。我的意思是self.__y需要列出一个清单。

class B:
    def __init__(self,x):
        self.__x=x      #private variable
        self.__y=[]
    def method(self,y):
        self.__y.append(y)      #private variable
    def details(self):
        print(f'x = {self.__x}') #private variable
        for obj in self.__y:
            print(obj.z)
class A:
    def __init__(self,z):
        self.z=z
#==================================
#This can't be changed.
obj1=A('a')
obj2=A('b')
obj3=B('x')
obj3.method(obj1)
obj3.method(obj2)
obj3.details()

由于这些对象实际上不代表任何东西,因此很难命名,而且我认为这使整个问题更难以理解,但是下面是我如何命名您可以控制的变量。正如评论中已经提到的那样,Python中实际上并没有私有变量的概念,但是如果您要警告人们变量应该被视为私有变量,则通常在变量前加一个下划线。

class B:
    def __init__(self, prop):
        self.prop = prop
        self.obj_A_list = []

    def method(self, obj_a):
        self.obj_A_list.append(obj_a)

    def details(self):
        print(f'x = {self.prop}')
        for obj in self.obj_A_list:
            print(obj.prop)

class A:
    def __init__(self, prop):
        self.prop = prop

#==================================
#This can't be changed.
obj1=A('a')
obj2=A('b')
obj3=B('x')
obj3.method(obj1)
obj3.method(obj2)
obj3.details()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

一类的成员变量可以在另一类的方法中使用吗?

来自分类Dev

在另一类的方法中使用一个类中的方法

来自分类Dev

在另一类JAVA中使用一类的变量

来自分类Dev

如何在Java中将变量从一类传递到另一类?

来自分类Dev

如何使一类中的方法可从另一类访问?

来自分类Dev

如何使用另一类中的代码?(Java)

来自分类Dev

如何使用另一类的on单击方法传递一个类的值

来自分类Dev

CSS一类忽略另一类

来自分类Dev

一类覆盖另一类的属性

来自分类Dev

将向量从一类传递到另一类作为对象

来自分类Dev

一类的对象的静态数组在另一类/构造函数中

来自分类Dev

如何将对象从一类转移到另一类-JAVA

来自分类Dev

如何允许某些类的对象访问另一类的对象的受保护成员

来自分类Dev

从另一类的方法访问一类的方法的最佳实践

来自分类Dev

如何在Xamarin中将绑定值从一类传递到另一类?

来自分类Dev

如何在一类中选择图像并将其显示在另一类的图像视图上

来自分类Dev

将方法作为回调从一类传递到另一类

来自分类Dev

从一类调用方法到另一类?

来自分类Dev

从一类到另一类的方法调用不起作用?

来自分类Dev

将布尔方法从一类传递到另一类

来自分类Dev

从一类调用方法到另一类?

来自分类Dev

另一类的方法调用Lua

来自分类Dev

如何将特定变量从一类继承到另一类?

来自分类Dev

如何将类型从一类传递到另一类?

来自分类Dev

如何将头寸价值从一类传递到另一类

来自分类Dev

如何将数组从一类传递到另一类?

来自分类Dev

使用LESS将样式从一类添加到另一类

来自分类Dev

一类数据在另一类数据C#中的使用

来自分类Dev

无法使用* .get *()将数据从一类获取到另一类

Related 相关文章

  1. 1

    一类的成员变量可以在另一类的方法中使用吗?

  2. 2

    在另一类的方法中使用一个类中的方法

  3. 3

    在另一类JAVA中使用一类的变量

  4. 4

    如何在Java中将变量从一类传递到另一类?

  5. 5

    如何使一类中的方法可从另一类访问?

  6. 6

    如何使用另一类中的代码?(Java)

  7. 7

    如何使用另一类的on单击方法传递一个类的值

  8. 8

    CSS一类忽略另一类

  9. 9

    一类覆盖另一类的属性

  10. 10

    将向量从一类传递到另一类作为对象

  11. 11

    一类的对象的静态数组在另一类/构造函数中

  12. 12

    如何将对象从一类转移到另一类-JAVA

  13. 13

    如何允许某些类的对象访问另一类的对象的受保护成员

  14. 14

    从另一类的方法访问一类的方法的最佳实践

  15. 15

    如何在Xamarin中将绑定值从一类传递到另一类?

  16. 16

    如何在一类中选择图像并将其显示在另一类的图像视图上

  17. 17

    将方法作为回调从一类传递到另一类

  18. 18

    从一类调用方法到另一类?

  19. 19

    从一类到另一类的方法调用不起作用?

  20. 20

    将布尔方法从一类传递到另一类

  21. 21

    从一类调用方法到另一类?

  22. 22

    另一类的方法调用Lua

  23. 23

    如何将特定变量从一类继承到另一类?

  24. 24

    如何将类型从一类传递到另一类?

  25. 25

    如何将头寸价值从一类传递到另一类

  26. 26

    如何将数组从一类传递到另一类?

  27. 27

    使用LESS将样式从一类添加到另一类

  28. 28

    一类数据在另一类数据C#中的使用

  29. 29

    无法使用* .get *()将数据从一类获取到另一类

热门标签

归档