Python论坛  - 讨论区

标题:Re: [python-chinese] 类与实例的属性值的改变是否 是互不影响的

2005年05月06日 星期五 13:43

Jason Liu telecomliu at gmail.com
Fri May 6 13:43:51 HKT 2005

我想是这样:
当你给test.a赋值:test.a=5时相当于给test增加了一个新属性a。
如果没有test.a=5而是用mytest.a=5,那么之后定义的所有mytest实例的属性a都将等5

在05-5-5,唐国巍<tgw_cl at tom.com> 写道:
> python-chinese,您好!
> 
>        一个类mytest,有一个属性a = 0,它的一个实例test.如果test.a = 5以后,mytest.a是应该等于0还是应该等于5?
>    我记得在一本书中写的是此时mytest.a应该等于0,可是写了一个小例子,mytest.a却等于5
> 
>> 礼!
> 
> 
> 唐国巍
> tgw_cl at tom.com
> 2005-05-05
> 
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> 
> 
>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年05月06日 星期五 17:03

lihui lihuimail at gmail.com
Fri May 6 17:03:30 HKT 2005

>>> class f1:
...   pass
>>> f1.a1=5
>>> f1.a1
5
>>> f=f1()
>>> f.a1
5
>>> f.a1=10
>>> f.a1
10
>>> f1.a1
5
>>>

书上说的没错啊
在05-5-6,Jason Liu<telecomliu at gmail.com> 写道:
> 我想是这样:
> 当你给test.a赋值:test.a=5时相当于给test增加了一个新属性a。
> 如果没有test.a=5而是用mytest.a=5,那么之后定义的所有mytest实例的属性a都将等5
> 
> 在05-5-5,唐国巍<tgw_cl at tom.com> 写道:
> > python-chinese,您好!
> >
> >        一个类mytest,有一个属性a = 0,它的一个实例test.如果test.a = 5以后,mytest.a是应该等于0还是应该等于5?
> >    我记得在一本书中写的是此时mytest.a应该等于0,可是写了一个小例子,mytest.a却等于5
> >
> > 致
> > 礼!
> >
> >
> > 唐国巍
> > tgw_cl at tom.com
> > 2005-05-05
> >
> > _______________________________________________
> > python-chinese list
> > python-chinese at lists.python.cn
> > http://python.cn/mailman/listinfo/python-chinese
> >
> >
> >
> 
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> 
> 
> 


-- 
my gmail:lihuimail(at)gmail.com

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年05月07日 星期六 08:59

Guofeng Yuan loocoo at gmail.com
Sat May 7 08:59:06 HKT 2005

大家说的都没错

>>> class mytest:
a1 = 0

>>> test = mytest()
>>> test.a1
0
>>> test.a1 = 5
>>> test.a1
5
>>> mytest.a1
0
>>> t = mytest
>>> t.a1
0
>>> mytest.a1
0
>>> t.a1 = 10
>>> t.a1
10
>>> mytest.a1
10
>>> 

我接着又写了两句,
>>> mytest.a1
10
>>> tt = t()
>>> tt.a1
10
>>> t.a1 = 5
>>> tt.a1
5
>>> tt.a1 =10
>>> t.a1
5
>>> t.a1 = 20
>>> tt.a1
10

谁能解释一下


On 5/6/05, lihui <lihuimail at gmail.com> wrote:
> 
> >>> class f1:
> ... pass
> >>> f1.a1=5
> >>> f1.a1
> 5
> >>> f=f1()
> >>> f.a1
> 5
> >>> f.a1=10
> >>> f.a1
> 10
> >>> f1.a1
> 5
> >>>
> 
> 书上说的没错啊
> 在05-5-6,Jason Liu<telecomliu at gmail.com> 写道:
> > 我想是这样:
> > 当你给test.a赋值:test.a=5时相当于给test增加了一个新属性a。
> > 如果没有test.a=5而是用mytest.a=5,那么之后定义的所有mytest实例的属性a都将等5
> >
> > 在05-5-5,唐国巍<tgw_cl at tom.com> 写道:
> > > python-chinese,您好!
> > >
> > > 一个类mytest,有一个属性a = 0,它的一个实例test.如果test.a = 5以后,mytest.a是应该等于0还是应该等于5?
> > > 我记得在一本书中写的是此时mytest.a应该等于0,可是写了一个小例子,mytest.a却等于5
> > >
> > > 致
> > > 礼!
> > >
> > >
> > > 唐国巍
> > > tgw_cl at tom.com
> > > 2005-05-05
> > >
> > > _______________________________________________
> > > python-chinese list
> > > python-chinese at lists.python.cn
> > > http://python.cn/mailman/listinfo/python-chinese
> > >
> > >
> > >
> >
> > _______________________________________________
> > python-chinese list
> > python-chinese at lists.python.cn
> > http://python.cn/mailman/listinfo/python-chinese
> >
> >
> >
> 
> --
> my gmail:lihuimail(at)gmail.com
> 
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> 
> 
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050507/f0c69465/attachment-0001.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年05月07日 星期六 09:18

Tangram Liu langram at gmail.com
Sat May 7 09:18:11 HKT 2005

关键在于后面的括号,加括号的是创建类实例,没有括号的是创建类别名
看看下面

>>> class mytest:
... a1=0
...
>>> mytest

>>> t1=mytest()
>>> t2=mytest
>>> t1
<__main__.mytest instance at 0x00B338C8>
>>> t2

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050507/eb69beef/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年05月08日 星期日 21:44

梅劲松  stephen.cn at gmail.com
Sun May 8 21:44:00 HKT 2005

可以这么理解.
mytest没有实例化前,只是一段代码.
而mytest可以实例化成多个对象.每个对象有自己的属性.

mytest是个class,只是我们对对象的描述,而不是对象本身.


在05-5-7,Tangram Liu<langram at gmail.com> 写道:
> 关键在于后面的括号,加括号的是创建类实例,没有括号的是创建类别名
> 看看下面
> 
> >>> class mytest:
> ...     a1=0
> ...
> >>> mytest
> 
> >>> t1=mytest()
> >>> t2=mytest
> >>> t1
> <__main__.mytest instance at 0x00B338C8>
> >>> t2
> 
> 
> 
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> 
> 
> 


-- 
梅劲松

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号