关于类里面的函数定义
为什么我定义类的方法的时候,这种嵌套函数怎么定义不会出错啊。。。 我一把load_encode这个函数放在外部跟url_read并列的时候 就能运行了。。。import chardet as cha ##查询编码器
import urllib.request
class Urlread:
def url_read(self, html = ''):
def load_encode(self):
'''读取网站编码器信息,并相应解码'''
self.encoding_method = cha.detect(self.response)['encoding']
if self.encoding_method == 'GB2312' :
self.encoding_method = 'GBK'
return self.encoding_method
self.html = html
self.response = urllib.request.urlopen(self.html).read() #读取网站内容
self.load_encode()
return self.response.decode(self.encoding_method)
u = Urlread()
print(u.url_read(r'http://www.fishc.com'))
import chardet as cha ##查询编码器
import urllib.request
class Urlread:
def url_read(self, html = ''):
def load_encode(self):
'''读取网站编码器信息,并相应解码'''
self.encoding_method = cha.detect(self.response)['encoding']
if self.encoding_method == 'GB2312' :
self.encoding_method = 'GBK'
return self.encoding_method
self.html = html
self.response = urllib.request.urlopen(self.html).read() #读取网站内容
load_encode(self) # 修改这一行
return self.response.decode(self.encoding_method)
u = Urlread()
print(u.url_read(r'http://www.fishc.com')) isdkz 发表于 2022-4-25 08:17
噢噢噢噢! 这种地方就不用加实例了对吧, 因为它已经是url_read() 这个方法的内嵌函数了 Victor0321 发表于 2022-4-25 10:15
噢噢噢噢! 这种地方就不用加实例了对吧, 因为它已经是url_read() 这个方法的内嵌函数了
对的。内嵌相当于局部,就跟局部变量一样前面不用加 self isdkz 发表于 2022-4-25 10:23
对的。内嵌相当于局部,就跟局部变量一样前面不用加 self
0.那我内嵌函数里的局部变量是不是也都可以不用加实例self.,比如说self.encoding_method 这个地方,即使外部函数要用到,也不需要跟self 链接对吧!
1.然后这种内嵌函数的内层函数,我从g整体外部框架内都无法访问的对吧!
页:
[1]