为了账号安全,请及时绑定邮箱和手机立即绑定

如何在类对象中引发“dtype”参数错误

如何在类对象中引发“dtype”参数错误

拉莫斯之舞 2023-06-27 13:09:08
我有以下代码:import numpy as npclass circle(object):    def __init__(self, radius=3, color='blue', data_type=np.float64):   # default values        self.radius = radius        self.color = color         self.data_type = data_type            if self.data_type not in [np.float32, np.float64]:        raise ValueError('data_type should be np.float32 or np.float64 only')            def add_radius(self, r):        self.radius = self.radius + np.ceil(r, dtype=self.data_type)        return(self.radius)    redcircle = circle(radius=10, color='red', data_type=np.float32)redcircle.add_radius(2.323) 当我运行代码时,出现以下错误:---------------------------------------------------------------------------NameError                                 Traceback (most recent call last)<ipython-input-39-27704fa7e57b> in <module>----> 1 class circle(object):      2     def __init__(self, radius=3, color='blue', data_type=np.float64):   # default values      3         self.radius = radius      4         self.color = color      5         self.data_type = data_type<ipython-input-39-27704fa7e57b> in circle()      5         self.data_type = data_type      6 ----> 7     if self.data_type not in [np.float32, np.float64]:      8         raise ValueError('dtype should be np.float32 or np.float64 only')      9 NameError: name 'self' is not defined如何在类对象中指定参数,以便在指定的参数值不是类对象所接受的值dtype时引发错误?dtype如果有人知道的话,非常感谢。
查看完整描述

1 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

Python 的结构完全由缩进级别控制:


class circle(object):

    def __init__(self, radius=3, color='blue', data_type=np.float64):   # default values

        self.radius = radius

        self.color = color 

        self.data_type = data_type

        # Python assumes this is the end of the __init__ function


    # because this next line is at the next higher level

    if self.data_type not in [np.float32, np.float64]:

        raise ValueError('data_type should be np.float32 or np.float64 only')

    

    # so the above is a fragment that will not run in __init__. 


    def add_radius(self, r):

        self.radius = self.radius + np.ceil(r, dtype=self.data_type)

        return(self.radius)

这是否回答你的问题?


查看完整回答
反对 回复 2023-06-27
  • 1 回答
  • 0 关注
  • 130 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信