用户:
TimeLinkForever查看:1 回复:1 评论:1 创建时间:2020-01-19T11:46:05
居然还是没人看……
还是算了
上一次的链接: https://shequ.codemao.cn/community/223526
但我还是要发!
哈哈。
这次咱们好好把import你的module的人好好玩一把。
介绍的是2个class_method(类方法)。
__int__ __float__
有啥用的?
比如这里新建一个RNumber类创建有理数,用p/q表示有理数(Rational Number)
有理数:
有理数是整数(正整数、0、负整数)和分数的统称,是整数和分数的集合。
【来自百度百科】
也就是说,有理数除了0都可以表示为分数。
所以我们使用p/q来表示有理数。
0的话则用try,except来决定
可以看看代码:
class Rnumber:
def __init__(self,p,q):
try:
self.number = p/q
except ZeroDivisionError:
self.number = 0
这段代码展示了RNumber类。
如果除数q不是0,则Rnumber的属性(attribute)number为p/q
否则就把number设置为0.
这是,我们就要用到我们刚刚说到的__int__和__float__啦。
接下来,我们要让类生产出来的数可以int和float.
张家老婆婆:说好的愚人呢???
李家老爷爷:对呀对呀!!!!
别急别急一会就说!"*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。"
class Rnumber:
def __init__(self,p,q):
try:
self.number = p/q
except ZeroDivisionError:
self.number = 0
def __int__(self):
return int(self.number)
a=Rnumber(3,2)
print(int(a))
#这行会返回1
b=Rnumber(3,0)
print(b.number)
#这行会返回0
至于__float__用法差不多,就是在使用float()时返回__float__中的内容。
接下来,就是大家所期待的愚人环节!
class Rnumber:
def __init__(self,p,q):
try:
self.number = p/q
except ZeroDivisionError:
self.number = 0
def __int__(self):
return 233
a=Rnumber(3,2)
print(int(a))
#这行会返回233
b=Rnumber(3,0)
print(b.number)
#这行会返回0
其实也就那样了。不过用在表达……
class Rnumber:
def __init__(self,p,q):
try:
self.number = p/q
except ZeroDivisionError:
self.number = 0
def __int__(self):
return 14524
a=Rnumber(3,2)
print(int(a))
#这行会返回1 4 5 2 4
b=Rnumber(3,0)
print(b.number)
#这行会返回0
小测试:
请用__float__给以下代码的Rnumber类设置__float__.
答对前1名将可以指定下期题目哦!




#只能在❓处填写
class Rnumber:
def __init__(self,p,q):
self.p=p
self.q=q
def __float__(self):
???
a=Rnumber(1,1)
print float(a)