免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1473 | 回复: 0
打印 上一主题 下一主题

py3k 类 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-19 09:48 |只看该作者 |倒序浏览

                第 5 章 对象和面向对象
在fileinfo.py中修改第30行为:
from collections import UserDict
类的创建
    模块化
import module 和 from module import sth.的区别
#import module vs. from module import
>>> import types
>>> types.FunctionType
>>> FunctionType
Traceback (innermost last):
  File "", line 1, in ?
NameError: There is no variable named 'FunctionType'
>>> from types import FunctionType
>>> FunctionType
   
    类
    from collections import UserDict
    class FileInfo(UserDict):
   
    在 Python 中,类的基类只是简单地列在类名后面的小括号里。所以 FileInfo 类是从 UserDict 类继承来的
    Python 支持多重继承。在类名后面的小括号中,你可以列出许多你想要的类名,以逗号分隔
   
   
    初始化并开始类编码
    __init__()使用
    了解何时去使用 self 和 __init__
   
    self的使用:
    1.定义自己类方法时必须将self作为方法的第一个参数,包括__init__
    2.从自己定义的类中调用父类的方法时,必须包括self
    3.从类外部调用自己的类方法时,不必对self参数制定值
   
    无论何时子类想扩展父类的行为,后代方法必须在适当的时机,使用适当的参数,显式调用父类方法。
    Python没有任何形式的重载,子类的方法总是覆盖父类的方法
   
类的实例化
#####################   
#Py3k class test.py
#####################
from collections import UserDict
class FileInfo(UserDict):
    '''test class use'''
    def __init__(self,filename=None):
        UserDict.__init__(self)
        self["name"]=filename
#####################   
#Py3k class test.py end
#####################

>>> import test
>>> f = test.FileInfo("F:\\RO.mp3")
#还记得什么时候 __init__ 方法将它的 filename 参数赋给 self["name"] 吗?
#哦,答案在这。在创建类实例时你传入的参数被正确发送到 __init__ 方法中
#(当我们创建类实例时,我们所传递的参数被正确地发送给 __init__ 方法)
#(随同一起传递的还有对象的引用,self,它是由 Python 自动添加的)
#__init__时的参数在创建实例时就赋值
>>> f.__class__
# 这里和2.6有区别,2.6返回的是地址
>>> f.__doc__
'test class use'
>>> f
{'name': 'F:\\RO.mp3'}
垃圾回收交给py做就ok~
UserDict:封装类
(to be continue...)
               
               

本作品由
loseblue
创作,采用
知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议
进行许可。

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/93455/showart_1868069.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP