python - 如果来自不同类的对象相互交互可以吗?

标签 python oop

我刚开始使用 Python 中的面向对象编程。如果我创建一个使用来自另一个类的对象的类的方法,我会徘徊是否可以。换句话说,当我调用第一个类的方法时,我将第二个类的一个对象作为参数之一。然后,所考虑的(第一类的)方法可以由第二类的对象操作(以获取其属性或使用其方法)。在 Python 中允许吗?这不被认为是一种糟糕的编程风格吗?

如果我使用第一个类的方法实例化第二个类的对象是否可以?换句话说,如果我从第一个类调用一个方法,它会实例化第二个类的对象。

提前感谢您的帮助。

最佳答案

如果您正在谈论将一个对象的实例传递给另一个对象的方法,那么当然是允许的!这被认为是良好的做法。

如果您想了解更多关于良好的面向对象编码的知识,我可以提供一些建议的读物:

设计模式:可重用面向对象软件的元素,作者:Erich Gamma、Richard Helm、Ralph Johnson、John M. Vlissides

这本书被称为四人帮,列出了一些设计模式,这些模式似乎一次又一次地出现在面向对象的代码中。这是寻找有关如何以良好的面向对象方式处理某些问题的想法的好地方。

另一个不错的:

重构:改进现有代码的设计,作者:Martin Fowler、Kent Beck、John Brant、William Opdyke、Don Roberts

这是一本很棒的书,可以让您了解在编写面向对象代码时不要做什么,以及在遇到它时如何修复它以使其变得更好。它提供了一个代码气味列表,这些代码气味表明面向对象的代码不好,重构的引用部分提供了有关如何修复这些气味并使它们更面向对象的说明。

关于python - 如果来自不同类的对象相互交互可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1498009/

相关文章:

java - Helper 类中的依赖项?

C++使用字符串调用对象成员函数

OOP - 如何选择可能的候选对象?

javascript - 有什么理由在构造函数中手动设置 `return` 吗?

java - 与 child 分享基本类型列表

python - TurtleGraphics Python : Bouncing turtle off the walls?

Python:是否可以混合生成器和递归函数?

python - Matplotlib 错误 : Data is shown above spine with twinx()

python - Selenium w/Python3 - AttributeError : 'str' object has no attribute 'tag_name'

python - 为什么 boto dynamodb2 get_item 速度不一致而且看起来经常很糟糕?