免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2690 | 回复: 5

菜鸟提问 [复制链接]

论坛徽章:
0
发表于 2009-12-06 21:41 |显示全部楼层
5可用积分
class Name:
        def __init__(self,nn):
                print nn

class Phone:
        def __init__(self,pp):
                print pp

class NewAddrBookEntry(object):  # class definition  类定义
    'new address book entry class'
    def __init__(self, nm, ph): # define constructor  定义构造器
        self.name = Name(nm) # create Name instance   创建 Name 实例
        self.phone = Phone(ph)  # create Phone instance   创建 Phone 实例
        print 'Created instance for:', self.name
tt=NewAddrBookEntry('shengyajun','1382172****')
shengyajun
1382172****
Created instance for: <__main__.Name instance at 0x01388B70>


为什么最后的self.name的结果不是shengyajun

最佳答案

查看完整内容

self.name指向的是Name对象前面的显示是在构造过程中显示调用了print你的这些类定义中没有记录shengyajun的地方仅仅是在初始化过程中print了一下

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
发表于 2009-12-06 21:41 |显示全部楼层
self.name指向的是Name对象
前面的显示是在构造过程中显示调用了print
你的这些类定义中没有记录shengyajun的地方
仅仅是在初始化过程中print了一下

论坛徽章:
0
发表于 2009-12-06 21:42 |显示全部楼层

回复 #1 shengyajund 的帖子

谢谢各位大Niu

论坛徽章:
0
发表于 2009-12-07 12:43 |显示全部楼层
最后的self.name是一个Name对象

论坛徽章:
0
发表于 2009-12-07 19:46 |显示全部楼层
你自己定义一个GetName的函数就OK了啊!
self.Name返回的知识类定义名字。

论坛徽章:
0
发表于 2009-12-09 14:08 |显示全部楼层
class Name:
        def __init__(self,nn):
                print nn # 3

class Phone:
        def __init__(self,pp):
                print pp # 5

class NewAddrBookEntry(object):  # class definition  类定义
    'new address book entry class'
    def __init__(self, nm, ph): # define constructor  定义构造器
        self.name = Name(nm) #  2
        self.phone = Phone(ph)  # 4
        print 'Created instance for:', self.name  # 6
tt=NewAddrBookEntry('shengyajun','1382172****')   1
shengyajun
1382172****
Created instance for: <__main__.Name instance at 0x01388B70>

程序执行的步骤:
1. 新建NewAddrBookEntry对象
2.给self.name赋值也就是新建了一个Name对象
3.Name的初始化函数print nn
4.给self.phone赋值也就是新建了一个Phone对象
5.Phone的初始化函数print pp
6.输出self.name其实就是步骤2 的值也就是一个Name对象
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP