为什么属性y可以改变,而x不可以改变
class Transfrom1 :def __init__(self,x=0,y=0) :
self.y=y
self.x=x
class Transfrom(Transfrom1) :
def __init__(self,x=0,y=0) :
self.transfrom1=Transfrom1(x,y)
def change(self):
titel=input('请选择主题(华氏温度、摄氏温度):')
if titel=='华氏温度' :
self.y=eval(input('请输入华氏温度:'))
return (self.y-32)/1.8
elif titel=='摄氏温度' :
self.x=eval(input('请输入摄氏温度:'))
return self.x*1.8+32
else :
print('你输入的格式不对,这里只能输入一个数字')
x=property(change)
def founction():
s=input('是否继续执行(是、否):')
if s=="是" :
c=Transfrom()
c.x
return founction()
else :
print('')
c=Transfrom()
c.x
founction()
错误:
Traceback (most recent call last):
File "D:/python(学习站)/dc.py", line 30, in <module>
c.x
File "D:/python(学习站)/dc.py", line 12, in change
self.x=eval(input('请输入摄氏温度:'))
AttributeError: can't set attribute
类方法和类属性变量名污染了
class Transfrom1 :
def __init__(self,x=0,y=0) :
self.y=y
self.x=x
class Transfrom(Transfrom1) :
def __init__(self,x=0,y=0) :
self.transfrom1=Transfrom1(x,y)
def change(self):
titel=input('请选择主题(华氏温度、摄氏温度):')
if titel=='华氏温度' :
self.y=eval(input('请输入华氏温度:'))
return (self.y-32)/1.8
elif titel=='摄氏温度' :
self.x=eval(input('请输入摄氏温度:'))
return self.x*1.8+32
else :
print('你输入的格式不对,这里只能输入一个数字')
z=property(change)
def founction():
s=input('是否继续执行(是、否):')
if s=="是" :
c=Transfrom()
c.z
return founction()
else :
print('')
c=Transfrom()
c.z
founction()
逃兵 发表于 2021-4-27 08:58
类方法和类属性变量名污染了
谢了,谢了
页:
[1]