能理解在类中定义的函数可以对实例调用该函数,那对于一个变量就不可以吗?

def count_words(filename):
try:
with open (filename) as f_obj:
contents = f_obj.read()
except FileNotFoundError:
msg = 'Sorry,the file ' + filename + ' does not exist.'
print(msg)
else:
words = contents.split()
num_words = len (words)
return str(num_words)

f_obj = 'x.txt'
print (f_obj.count_words())
这会报错'str' has no attribute 'count_words'
正确的是print(count_words(f_obj))
为什么?
我看有说w.f() 是调用对象w中的f方法,那对象有什么限制吗

一只萌萌小番薯
浏览 100回答 1
1回答

www说

f_obj是一个str类型的变量而str类里没有count_words()方法,所以报错count_words()是一个独立的函数,它不属于任何类,因此调用形式就是count_words(参数)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python