Python 我在写A,E,I,O,U的计数
当我运行此代码时:Python 我在写A,E,I,O,U的计数,python,oop,Python,Oop,当我运行此代码时: class Check(): def __init__(self, string): self.string = string self.open() def open(self): self.checks() def checks(self): a = 0 for letter in self.string: if letter == &quo
class Check():
def __init__(self, string):
self.string = string
self.open()
def open(self):
self.checks()
def checks(self):
a = 0
for letter in self.string:
if letter == "a" or letter == "A" or letter == "E" or letter == "e" or letter == "U" or letter == "u" or letter == "O" or letter == "o" or letter == "I" or letter == "i":
a = a+1
return a
a = Check("Alfoo")
print(a)
我得到:
<__main__.Check object at 0x00000257F224A978>
首先,无需从构造函数中调用
self.open()
,然后从open()
中检查(),您可以将其删除
在checks()
函数中,迭代self.string
中的每个字母
,如果字母包含aeiou
,则在变量a
中继续递增1,然后只返回a
class Check:
def __init__(self, string):
self.string = string
def checks(self):
a = sum(1 for letter in self.string.lower() if letter in 'aeiou')
return a
a = Check("Alfoo")
print(a.checks())
让我们假设open()成员函数将来会很有用——也许它会在运行checks()之后得到更多的代码来执行某些操作 下面是代码的操作方式:
\uuuu init\uuuu
设置成员变量并调用open()
open()
调用check()
check()
对AEIOU进行计数并返回计数(变量a)open()
中调用check()
不会分配返回值,因此该值丢失\uuuu init\uuuu()
调用open()
不会返回值,因此\uuuuu init\uuuu()
已完成类检查():
定义初始化(self,字符串):
#集合成员变量
self.string=string
self.count=无
#调用成员函数以正确启动实例
self.open()
#成员函数来“打开”某些内容
def打开(自):
如果self.count为无:
自我检查
#成员变量计数的访问器(只读)函数
def get_计数(自身):
#我们要确保计数设置为一个数字
如果self.count为无:
自我检查
返回自计数
#执行验证并设置成员变量
#到目前为止,只需设置count成员变量
def检查(自我):
self.count=0
对于self.string中的字母:
如果字母==“a”或字母==“a”或字母==“E”或字母==“E”或字母==“U”或字母==“U”或字母==“O”或字母==“O”或字母==“I”或字母==“I”:
self.count+=1
a=支票(“Alfoo”)
打印(a.获取计数()
你的意思是a=Check(“Alfoo”).checks()
?使用类似乎有些过分。我如何才能使它成为a=Check(“Alfoo”)呢?这是否回答了你的问题?摆脱该类,进行def检查(string)
并调用a=checks(“Alfoo”)
。类是完全没有必要的。您可以消除open函数和对_init__;()中self.open()的调用。。。这会更简单。checks也可以返回sum(如果'AEIOUaeiou'中的l为l,则self.string中的l为1)
,但这一点差别不大。虽然这个代码片段可能是解决方案,但确实有助于提高您的帖子质量。请记住,您将在将来回答读者的问题,而这些人可能不知道您的代码建议的原因。我同意您的看法。答案应该有一些解释给读者。另外,很抱歉,因为我对回答堆栈溢出问题还不熟悉,我将在将来对我的代码进行某种解释,并感谢您指出。TypeError:get_count()接受0个位置参数,但1被指定为get_count()的参数-我的错误。我编辑了上面的代码。你忘记了函数get\u count中的self