相关疑难解决方法(0)

什么是在Python中拥有多个构造函数的干净,pythonic方式?

我无法找到明确的答案.AFAIK,你不能__init__在Python类中拥有多个函数.那么我该如何解决这个问题呢?

假设我有一个Cheese使用该number_of_holes属性调用的类.我怎样才能有两种创建奶酪对象的方法......

  1. 一个像这样的洞: parmesan = Cheese(num_holes = 15)
  2. 并且不带参数并且只是随机化number_of_holes属性:gouda = Cheese()

我只想到一种方法来做到这一点,但这似乎有点笨重:

class Cheese():
    def __init__(self, num_holes = 0):
        if (num_holes == 0):
            # randomize number_of_holes
        else:
            number_of_holes = num_holes
Run Code Online (Sandbox Code Playgroud)

你说什么?还有另外一种方法吗?

python constructor

660
推荐指数
9
解决办法
26万
查看次数

行为因输入对象类型而异的 Python 函数

在 Python 中,我可以编写一个将对象作为输入并根据对象的类型执行不同计算的函数吗?

例如,假设我有两个类:“circle”和“line”。我定义了一个具有半径和中心位置的圆形对象 A,以及一个具有不同半径和中心位置的圆形对象 B。然后我定义一个带有方向向量和沿线的点的线对象 C。

我想编写一个计算交集的函数:

def intersect(obj1,obj2):
    # Returns intersection of two geometric entities
Run Code Online (Sandbox Code Playgroud)

如果我输入两个圆 A 和 B,我希望函数返回 A 和 B 的交点。但是如果我输入圆 A 和线 C,我希望输出是线所在的点(如果有)穿过圆圈。所以 intersect(obj1,obj2) 需要以某种方式读取 obj1 和 obj2 的类,并采取相应的行动。

python oop linear-algebra

0
推荐指数
1
解决办法
1994
查看次数

标签 统计

python ×2

constructor ×1

linear-algebra ×1

oop ×1