【将来虫教育】python新式类是什么
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="//q6.itc.cn/images01/20240625/2185003634eb4f38bf8f13772060517e.png" style="width: 50%; margin-bottom: 20px;"></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">1、说明</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">python3.x的所有类都会自动转换为一个新式类,不论<span style="color: black;">是不是</span>有继承object对象。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">python2.x<span style="color: black;">必要</span>显式地指定类继承object父类才<span style="color: black;">暗示</span>新式类。</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">2、实例</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"># newstyle.py,python环境为2.xclass Classic:</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">"""</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">python2.x默认类为经典类</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">因为</span>__getatt__ 与 __getattribute__功能效果<span style="color: black;">同样</span>,<span style="color: black;">这儿</span>只用__getattr__演示</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">"""</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">def __getattr__(self, method_name):</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">print("call Classic __getattr__,it would call built-in[%s] method " % method_name) return getattr(self.__name,method_name)class NewStyleClass(object): def __init__(self):</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">self.__name = "newstyle name"</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">"""</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">python2.x<span style="color: black;">必须</span>指明为新式类,python3.x默认为新式类</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">"""</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">def __getattr__(self, item):</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">print("call NewStyle __getattr__,it would call built-in[%s] method " %item) return getattr(self.__name,item)def test_dir():</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">C = Classic()</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">N = NewStyleClass()</p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">print(dir(C) # 经典类内置有__getattr__<span style="color: black;">办法</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">print(dir(N) # 新式类的内置<span style="color: black;">办法</span>继承object对象>>> python newstyle.py<a style="color: black;"><span style="color: black;">返回<span style="color: black;">外链论坛:www.fok120.com</span></span></a>,查看<span style="color: black;">更加多</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">责任编辑:网友投稿</span></p>
祝福你、祝你幸福、早日实现等。 seo常来的论坛,希望我的网站快点收录。 感谢楼主分享,祝愿外链论坛越办越好! seo常来的论坛,希望我的网站快点收录。 期待与你深入交流,共探知识的无穷魅力。 论坛的成果是显著的,但我们不能因为成绩而沾沾自喜。
页:
[1]