Python 类生成的输出中的限制
假设我想创建一个类圆圈,如果提供一个值r和一个值delta\u r,它可以计算两个圆圈的环形面积。 之后,使用这个类,我想创建一个包含几对圆的列表 如何在类中添加一个条件,仅当r<7时才允许附加值?因此,在示例中,仍然创建列表C,但仅包括r=6之前的结果Python 类生成的输出中的限制,python,python-3.x,class,if-statement,Python,Python 3.x,Class,If Statement,假设我想创建一个类圆圈,如果提供一个值r和一个值delta\u r,它可以计算两个圆圈的环形面积。 之后,使用这个类,我想创建一个包含几对圆的列表 如何在类中添加一个条件,仅当r
import numpy as np
from numpy import pi
class circle:
def __init__(self, r=1, delta_r=0.1):
self.r = r
self.delta_r = delta_r
self.area1 = pi*r**2
self.area2 = pi*(r+delta_r)**2
self.annulus = self.area2 - self.area1
C_range = np.arange(1, 10)
C = []
for n in C_range:
C.append(circle(n, 0.2))
在下面,您可以找到两种保护圆圈不受错误r影响的方法。
第一个是外部保护-创建圆的代码确保它使用有效的r值。
第二种方法(也是推荐的方法)是让circle保护自己
import numpy as np
from numpy import pi
class Circle:
def __init__(self, r=1, delta_r=0.1):
self.r = r
self.delta_r = delta_r
self.area1 = pi*r**2
self.area2 = pi*(r+delta_r)**2
self.annulus = self.area2 - self.area1
C_range = np.arange(1, 10)
circle_list = [Circle(r, 0.2) for r in np.arange(1, 10) if r < 7]
print(circle_list)
class CirclePlus:
def __init__(self, r=1, delta_r=0.1):
if r >= 7:
raise ValueError(f"Invalid r value {r}")
else:
self.r = r
self.delta_r = delta_r
self.area1 = pi*r**2
self.area2 = pi*(r+delta_r)**2
self.annulus = self.area2 - self.area1
将numpy导入为np
从numpy导入pi
班级圈子:
定义初始值(自,r=1,增量r=0.1):
self.r=r
self.delta\u r=delta\u r
self.area1=pi*r**2
self.area2=pi*(r+delta_r)**2
自环空=自区域2-自区域1
C_范围=np.arange(1,10)
圆形列表=[圆形(r,0.2)表示np.arange(1,10)中的r,如果r<7]
打印(循环列表)
类圆环:
定义初始值(自,r=1,增量r=0.1):
如果r>=7:
raise VALUERROR(f“无效的r值{r}”)
其他:
self.r=r
self.delta\u r=delta\u r
self.area1=pi*r**2
self.area2=pi*(r+delta_r)**2
自环空=自区域2-自区域1
可能会给出圆圈
一个最大值
属性?