首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当一个属性依赖于两个类时,它应该定义在哪个类上?

当一个属性依赖于两个类时,它应该定义在哪个类上?
EN

Stack Overflow用户
提问于 2020-09-10 13:33:27
回答 1查看 63关注 0票数 0

假设我有两个类:WaterSubstance。一个或多个Substance可以在Water中溶解;Water实例具有包含Substance实例列表的substances属性。Substance的扩散常数取决于它所溶解的Water的属性以及Substance本身的一些属性。然后,我应该在Water上使用Water的一个实例作为它的属性来创建一个Substance方法,还是应该将该方法添加到Substance,其中Water是它的参数?还是有一个完全不同的方法?

EN

回答 1

Stack Overflow用户

发布于 2020-09-10 13:53:26

我假设Water继承了Substance的一些东西。因此,您可以在每个Substance中有一个Substance,也可以在一个diffuse函数中使用一个或多个Substance

编辑:

代码语言:javascript
复制
class Water:
     def diffuse(self, *args):
         #check if args is greater 0 or None and then iterate and apply diffusion_constants

class Substance:
      diffusion_constant = 0 #base constant

class Sirup(Substance):
      diffusion_constant = 3

#somewhere later then
corn_sirup = Sirup()
sugary_sirup = Sirup()
water = Water()
water.diffuse(corn_sirup, sugary_sirup)

编辑:由于注释,我更改了代码。Python有鸭类型,所以只要你的物质有一个diffusion_constant属性,就可以访问它,不管它是什么。这样就可以了

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63830829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档