博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python的类方法
阅读量:6577 次
发布时间:2019-06-24

本文共 1492 字,大约阅读时间需要 4 分钟。

1

I used to work with PHP and recently I was asking myself, whats going on with this classmethod? Python manual is very technical and very short in words so it wont help with understanding that feature. I was googling and googling and I found answer -> .

If you are lazy to click it. My explanation is shorter and below. :)

in PHP (maybe not all of you know PHP, but this language is so straight forward that everybody should understand what I'm talking about) we have static variables like this:

class A {
    static protected $inner_var = null;     static public function echoInnerVar()     {
        echo self::$inner_var."\n";     }     static public function setInnerVar($v)     {
        self::$inner_var = $v;     } } class B extends A {
} A::setInnerVar(10); B::setInnerVar(20); A::echoInnerVar(); B::echoInnerVar();

The output will be in both cases 20.

However in python we can add @classmethod decorator and thus it is possible to have output 10 and 20 respectively. Example:

class A(object):     inner_var = 0     @classmethod     def setInnerVar(cls, value):         cls.inner_var = value     @classmethod     def echoInnerVar(cls):         print cls.inner_var class B(A):     pass A.setInnerVar(10) B.setInnerVar(20) A.echoInnerVar() B.echoInnerVar()

Smart, ain't?

欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 330987132 | Go:217696290 | Python:336880185 | 做人要厚道,转载请注明出处!http://www.cnblogs.com/sunshine-anycall/archive/2011/07/04/2097646.html
你可能感兴趣的文章
电脑上怎样压缩图片大小
查看>>
新来的发一个帖子
查看>>
lnmp安装
查看>>
FTP工作方式
查看>>
Ubuntu16.04 ssh安及root登录
查看>>
C语言dos程序源代码分享(进制转换器)
查看>>
php项目中常用的log日志记录方法
查看>>
LogParser 导入MSSQL
查看>>
linux安装go环境并编写第一个go程序
查看>>
【在线研讨-现场文字】《敏捷开发用户故事分类与组织结构(二期-3)》2012-07-03...
查看>>
易语言 --什么情况下 用许可证
查看>>
项目总结:凡事预则立,不预则废!
查看>>
建属于自己的网站
查看>>
[linux] ubuntu 切换默认的/bin/sh
查看>>
boost库之智能指针
查看>>
linux c/c++ GDB教程详解(转载)
查看>>
在redhat server 6 安装gcc-4.5.2
查看>>
我的友情链接
查看>>
自定义View Client 登录方式(一)
查看>>
cenOS+nginx+php+mysql (非一键包安装)
查看>>