Python论坛  - 讨论区

标题:[python-chinese] 如何得到一个类的方法,谢谢!

2005年09月19日 星期一 17:58

Protoss Jiang jsonic1106 at gmail.com
Mon Sep 19 17:58:46 HKT 2005

例如以下程序
---------------------------------------------------------
class MyClass:
    "A simple example class"
    i = 12345
    def f(self):
        return 'hello world'
---------------------------------------------------------

print MyClass.i #打印出'12345'
print MyClass.f #得到什么?

对于MyClass.f, 编译器返回,为什么?

-- 
Protoss Jiang
mailto: jsonic1106 at gmail.com

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

2005年09月19日 星期一 18:12

Albert Lee hanzhupeng at gmail.com
Mon Sep 19 18:12:54 HKT 2005

 表示这个方法还没有绑定到一个对象实例上
要看一个类有什么方法,可以 dir

>>> dir(MyClass)
['__doc__', '__module__', 'f', 'i']
>>> 

On 9/19/05, Protoss Jiang <jsonic1106 at gmail.com> wrote:
> 
> 例如以下程序
> ---------------------------------------------------------
> class MyClass:
> "A simple example class"
> i = 12345
> def f(self):
> return 'hello world'
> ---------------------------------------------------------
> 
> print MyClass.i #打印出'12345'
> print MyClass.f #得到什么?
> 
> 对于MyClass.f, 编译器返回,为什么?
> 
> --
> Protoss Jiang
> mailto: jsonic1106 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/20050919/8db26989/attachment.htm

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

2005年09月19日 星期一 20:52

limodou limodou at gmail.com
Mon Sep 19 20:52:07 HKT 2005

在 05-9-19,Protoss Jiang<jsonic1106 at gmail.com> 写道:
> 例如以下程序
> ---------------------------------------------------------
> class MyClass:
>     "A simple example class"
>     i = 12345
>     def f(self):
>         return 'hello world'
> ---------------------------------------------------------
> 
> print MyClass.i #打印出'12345'
> print MyClass.f #得到什么?
> 
> 对于MyClass.f, 编译器返回,为什么?
> 

一个类的方法一般是不可以直接调用的,但有两种调用方法,静态方法和类方法。而对于一般的类方法需要绑定一个实例对象。这个实例对象就是方法的第一个参数。因为上面的方法是一个一般方法,因此它需要与一个实例对象进行绑定。而直接MyClass.f这种用法是没有与实例对象进行绑定的,因此它会显示出unbound
method 这样的信息。

关于绑定与未绑定可以再找一些参数资料查一查。
-- 
I like python! 
My Donews Blog: http://www.donews.net/limodou

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

2005年09月20日 星期二 09:16

Protoss Jiang jsonic1106 at gmail.com
Tue Sep 20 09:16:42 HKT 2005

谢谢指点

在 05-9-19,limodou<limodou at gmail.com> 写道:
> 在 05-9-19,Protoss Jiang<jsonic1106 at gmail.com> 写道:
> > 例如以下程序
> > ---------------------------------------------------------
> > class MyClass:
> >     "A simple example class"
> >     i = 12345
> >     def f(self):
> >         return 'hello world'
> > ---------------------------------------------------------
> >
> > print MyClass.i #打印出'12345'
> > print MyClass.f #得到什么?
> >
> > 对于MyClass.f, 编译器返回,为什么?
> >
> 
> 一个类的方法一般是不可以直接调用的,但有两种调用方法,静态方法和类方法。而对于一般的类方法需要绑定一个实例对象。这个实例对象就是方法的第一个参数。因为上面的方法是一个一般方法,因此它需要与一个实例对象进行绑定。而直接MyClass.f这种用法是没有与实例对象进行绑定的,因此它会显示出unbound
> method 这样的信息。
> 
> 关于绑定与未绑定可以再找一些参数资料查一查。
> --
> I like python!
> My Donews Blog: http://www.donews.net/limodou
> 
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> 
> 
> 


-- 
Protoss Jiang
mailto: jsonic1106 at gmail.com

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

2005年09月20日 星期二 10:32

jzx++ jzx19770812 at yahoo.com.cn
Tue Sep 20 10:32:55 HKT 2005

你试试
print MyClass.f()

On Mon, 19 Sep 2005 17:58:46 +0800
Protoss Jiang <jsonic1106 at gmail.com> wrote:

> 例如以下程序
> ---------------------------------------------------------
> class MyClass:
>     "A simple example class"
>     i = 12345
>     def f(self):
>         return 'hello world'
> ---------------------------------------------------------
> 
> print MyClass.i #打印出'12345'
> print MyClass.f #得到什么?
> 
> 对于MyClass.f, 编译器返回,为什么?
> 
> -- 
> Protoss Jiang
> mailto: jsonic1106 at gmail.com

-- 
jzx <jzx19770812 at yahoo.com.cn>

__________________________________________________
Do You Yahoo!?
雅虎免费G邮箱-中国第一绝无垃圾邮件骚扰超大邮箱
http://cn.mail.yahoo.com/?id=77071

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

2005年09月20日 星期二 10:40

刘国栋 liuguodong at gmail.com
Tue Sep 20 10:40:08 HKT 2005

http://wiki.woodpecker.org.cn/moin/PyProgFaq
中有讲到静态方法的,你可以看看

 在05-9-20,jzx++ <jzx19770812 at yahoo.com.cn> 写道: 
> 
> 你试试
> print MyClass.f()
> 
> On Mon, 19 Sep 2005 17:58:46 +0800
> Protoss Jiang <jsonic1106 at gmail.com> wrote:
> 
> > 例如以下程序
> > ---------------------------------------------------------
> > class MyClass:
> > "A simple example class"
> > i = 12345
> > def f(self):
> > return 'hello world'
> > ---------------------------------------------------------
> >
> > print MyClass.i #打印出'12345'
> > print MyClass.f #得到什么?
> >
> > 对于MyClass.f, 编译器返回,为什么?
> >
> > --
> > Protoss Jiang
> > mailto: jsonic1106 at gmail.com
> 
> --
> jzx <jzx19770812 at yahoo.com.cn>
> 
> __________________________________________________
> Do You Yahoo!?
> 雅虎免费G邮箱-中国第一绝无垃圾邮件骚扰超大邮箱
> http://cn.mail.yahoo.com/?id=77071
> _______________________________________________
> 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/20050920/9e1a8a14/attachment-0001.htm

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

2005年09月20日 星期二 12:03

Protoss Jiang jsonic1106 at gmail.com
Tue Sep 20 12:03:34 HKT 2005

感谢大家,我的程序有很多问题,之前都没认真想过,现在正在头疼.
在 05-9-20,刘国栋<liuguodong at gmail.com> 写道:
> http://wiki.woodpecker.org.cn/moin/PyProgFaq
> 中有讲到静态方法的,你可以看看
> 
>  
> 在05-9-20,jzx++ <jzx19770812 at yahoo.com.cn> 写道: 
> > 
> > 你试试
> > print MyClass.f()
> > 
> > On Mon, 19 Sep 2005 17:58:46 +0800
> > Protoss Jiang < jsonic1106 at gmail.com> wrote:
> > 
> > > 例如以下程序
> > >
> ---------------------------------------------------------
> > > class MyClass:
> > >     "A simple example class"
> > >     i = 12345
> > >     def f(self): 
> > >         return 'hello world'
> > >
> ---------------------------------------------------------
> > >
> > > print MyClass.i #打印出'12345'
> > > print MyClass.f #得到什么?
> > >
> > > 对于MyClass.f, 编译器返回,为什么?
> > >
> > > --
> > > Protoss Jiang
> > > mailto: jsonic1106 at gmail.com
> > 
> > --
> > jzx <jzx19770812 at yahoo.com.cn >
> > 
> > __________________________________________________
> > Do You Yahoo!?
> > 雅虎免费G邮箱-中国第一绝无垃圾邮件骚扰超大邮箱
> > http://cn.mail.yahoo.com/?id=77071
> > _______________________________________________ 
> > 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
> 
> 
> 


-- 
Protoss Jiang
mailto: jsonic1106 at gmail.com

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

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

    你的回复:

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

    Zeuux © 2025

    京ICP备05028076号