|
|

楼主 |
发表于 2015-5-24 13:36:24
|
显示全部楼层
谢谢您的回复!
不知道您说的是哪个string?我之前试过在各个string前加了self,基本都报错了
1. 在new() 括号内加self,运行前直接报错,返回invalid syntax
- class CapStr(str):
- def __new__(cls,self.string):
- string = tring.upper()
- return str.__new__(cls,string)
- def __init__(self,string):
- self.string=string
- print (self.string)
- def addfive(self):
- self.string +="5"
- return self.string
复制代码
2. 在new内的赋值里加上self,运行后报错- class CapStr(str):
- def __new__(cls,string):
- self.string = string.upper()
- return str.__new__(cls,string)
- def __init__(self,string):
- self.string=string
- print (self.string)
- def addfive(self):
- self.string +="5"
- return self.string
复制代码
返回self is not.defined错误,这里出错了,所以没有尝试在return 里加self的情况了
- Traceback (most recent call last):
- File "<pyshell#5>", line 1, in <module>
- a=CapStr("a")
- File "C:/Users/David/Desktop/1.py", line 3, in __new__
- self.string = string.upper()
- NameError: name 'self' is not defined
复制代码
|
|