深圳做网站比较好,网站功能说明怎么做,wordpress点赞,虚拟主机与网站建设目录 1、计算连续表达式的一个过程
2、优化后的代码
为什么不能return resultn#xff1f;
3、用面向对象的方法可以解决冗余的问题#xff0c;但是还是不能解决result的值可以被随意修改的问题
4、解决不能被随意修改的问题#xff0c;可以将类属性改成私有变量吗…目录 1、计算连续表达式的一个过程
2、优化后的代码
为什么不能return resultn
3、用面向对象的方法可以解决冗余的问题但是还是不能解决result的值可以被随意修改的问题
4、解决不能被随意修改的问题可以将类属性改成私有变量吗但是随之而来的问题就是也不能更改读取和访问了
5、最后用实例对象极限优化。。我不能理解 为啥一开始不用实例对象来着不是更容易吗 1、计算连续表达式的一个过程
但是这个代码有点冗余有一点可以修改和优化的地方具体看如下
#计算器实现一些基本操作如加减乘除
def jia(n1,n2):return n1 n2
def jian(n1,n2):return n1-n2
def cheng(n1,n2):return n1*n2
def chu(n1,n2):return n1 / n2
# res jia(3,4)
# print(res)
# res1 jian(3,8)
# print(res1)
#(26-4)*5
r1 jia(2,6)
r2 jian(r1,4)
r3 cheng(r2,5)
print(r3)
2、优化后的代码
result 0
def first_value(v):global resultresult v
def jia(n):global resultresult n
def jian(n):global resultresult - n
def cheng(n):global resultresult * n
def chu(n):global resultresult / n
# res jia(3,4)
# print(res)
# res1 jian(3,8)
# print(res1)
#(26-4)*5
# r1 jia(2,6)
# r2 jian(r1,4)
# r3 cheng(r2,5)
# print(r3)first_value(2)
jia(6)
jian(4)
cheng(5)
print(result)
为什么不能return resultn
在Python中return 语句用于从函数中返回一个值并且结束函数的执行。而 result n 是一个赋值语句它将 result 的值加上 n 并赋给 result但它并不返回任何值。
3、用面向对象的方法可以解决冗余的问题但是还是不能解决result的值可以被随意修改的问题
class Caculator:result 0classmethoddef first_value(cls,n):cls.result nclassmethoddef jia(cls,n):cls.result nclassmethoddef jian(cls,n):cls.result -nclassmethoddef cheng(cls,n):cls.result * nclassmethoddef chu(cls,n):cls.result / n
Caculator.first_value(2)
Caculator.jia(6)
Caculator.jian(4)
Caculator.cheng(5)
print(Caculator.result)
4、解决不能被随意修改的问题可以将类属性改成私有变量吗但是随之而来的问题就是也不能更改读取和访问了
class Caculator:__result 0classmethoddef first_value(cls,n):cls.__result nclassmethoddef jia(cls,n):cls.__result nclassmethoddef jian(cls,n):cls.__result -nclassmethoddef cheng(cls,n):cls.__result * nclassmethoddef chu(cls,n):cls.__result / nclassmethoddef show(cls):print(计算的结果是%s%cls.__result)
Caculator.first_value(2)
Caculator.jia(6)
Caculator.jian(4)
Caculator.cheng(5)
Caculator.show()
改成私有属性照样可以访问只不过需要在最后面那块加一个显示函数类似于show这种的~~~
5、最后用实例对象极限优化。。我不能理解 为啥一开始不用实例对象来着不是更容易吗
class Caculor():def __init__(self,num):self.__result numdef jia(self,n):self.__result ndef jian(self,n):self.__result - ndef cheng(self,n):self.__result * ndef chu(self,n):self.__result / ndef show(self):self.__resultprint(最终计算结果是%s%self.__result)
p1 Caculor(2)p1.jia(6)
p1.jian(4)
p1.cheng(5)
p1.show()
6、更好的修改是增加一个容错机制
class Caculator:def __init__(self,num):if not isinstance(num,int):raise TypeError(阿偶不是一个整型数据哦)self.__resultnumdef jia(self,n):self.__result ndef jian(self,n):self.__result - ndef cheng(self,n):self.__result * ndef chu(self,n):self.__result / ndef show(self):print(最终结果是%s%self.__result)
c1 Caculator(axc)
c1.jia(6)
c1.jian(4)
c1.cheng(5)
c1.show()