5.10 对比 self,cls参数

python类里会出现这三个单词,self和cls都可以用别的单词代替,类的方法有三种,

一是通过def定义的 普通的一般的,需要至少传递一个参数,一般用self,这样的方法必须通过一个类的实例去访问,类似于c++中通过对象去访问;

二是在def前面加上@classmethod,这种类方法的一个特点就是可以通过类名去调用,但是也必须传递一个参数,一般用cls表示class,表示可以通过类直接调用;

三是在def前面加上@staticmethod,这种类方法是静态的类方法,类似于c++的静态函数,他的一个特点是参数可以为空,同样支持类名和对象两种调用方式;

class A:
    member = "this is a test."

    def __init__(self):
        pass

    @classmethod
    def Print1(cls):
        print("print 1: ", cls.member)

    def Print2(self):
        print("print 2: ", self.member)

    @classmethod
    def Print3(paraTest):
        print("print 3: ", paraTest.member)

    @staticmethod
    def print4():
        print("hello")

a = A()
A.Print1()  #结果是  print 1:  this is a test.
a.Print1()  #结果是  print 1:  this is a test.
# A.Print2()
a.Print2()  #结果是  print 2:  this is a test.
A.Print3()  #结果是  print 3:  this is a test.
a.Print3()  #结果是  print 3:  this is a test.
A.print4()  #结果是  helloa.print4()  #结果是  hello
 

原文地址:https://www.cnblogs.com/caimengzhi/p/8475428.html

时间: 2024-10-11 22:58:51

5.10 对比 self,cls参数的相关文章

Python中的self,cls参数

python类里会出现这三个单词,self和cls都可以用别的单词代替,类的方法有三种, 一是通过def定义的 普通的一般的,需要至少传递一个参数,一般用self,这样的方法必须通过一个类的实例去访问,类似于c++中通过对象去访问: 二是在def前面加上@classmethod,这种类方法的一个特点就是可以通过类名去调用,但是也必须传递一个参数,一般用cls表示class,表示可以通过类直接调用: 三是在def前面加上@staticmethod,这种类方法是静态的类方法,类似于c++的静态函数,

UVM:10.5.2 聚合参数的优势与问题

1.使用聚合参数后,可以将此参数类的指针放在virtual sequencer中: 2.当sequence 要动态改变验证平台某个变量时,如下: 3.甚至可以将interface 也放入聚合参数: 4.这样,无论是driver 还是monitor 中,都可以直接用cfg.vif,不必在使用config_db 来得到interface: 1)因为interface 藏在cfg 里. 2)如果cfg 赋给sequencer,那么10.3.1 的sequencer 也不必使用get 得到接口. 5.m

python类中的self参数和cls参数

1. self表示一个类的实例对象本身.如果用了staticmethod就无视这个self了,就将这个方法当成一个普通的函数使用了. 2. cls表是这个类本身. # 代码为证 class A(object): def func1(self): print("func1:", self) @staticmethod def func2(): print("func2") @classmethod def func3(cls): print("func3:&

深入理解JVM虚拟机10:JVM常用参数以及调优实践

微信公众号[Java技术江湖]一位阿里 Java 工程师的技术小站.作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux.网络.多线程,偶尔讲点Docker.ELK,同时也分享技术干货和学习经验,致力于Java全栈开发!(关注公众号后回复”Java“即可领取 Java基础.进阶.项目和架构师等免费学习资料,更有数据库.分布式.微服务等热门技术学习视频,内容丰富,兼顾原理和实践,另外也将赠送作者原创的Java学习指南.Java程序员面试指

跟6.10对比一下

everything is nothing 这篇文章是是6.10写的 小结下: 这篇文章是6.10的时候写的吗.也就是6月左右,现在是9月26号,项目接近尾声,一共108天. 项目中用的版本控制工具是cvs,应该跟svn差不多,做的项目是航空订票系统,ssh三大框架能用了,jquery也会用了, 单词坚持每天都花时间在读,但是量真的不大够,这个真心得改变 oracle这个数据库还没有学习.

中国卡片电脑基本参数对比:E8卡片式电脑与OK335xS-II开发板

由树莓派引发的卡片电脑热潮,国内嵌入式开发商也纷纷开发体积小的卡片电脑.国内著名嵌入式开发商天嵌科技与飞凌嵌入式也开发卡片电脑.现在,将对天嵌的E8卡片式电脑与飞凌的OK335xS-II开发板进行基本参数的对比. 基本参数对比: 基本参数  E8卡片电脑(369元)  OK335xS-II开发板(298元)  CPU Samsung Cortex-A8 S5PV210处理器 Cortex-A8 TI AM3354处理器(工业级)  主频  1GHz  主频:720MHz/800MHz  内存  

kafka之consumer参数auto.offset.reset 0.10+

https://blog.csdn.net/dingding_ting/article/details/84862776 https://blog.csdn.net/xianpanjia4616/article/details/84347087 kafka-0.10.1.X版本之前: auto.offset.reset 的值为smallest,和,largest.(offest保存在zk中) kafka-0.10.1.X版本之后: auto.offset.reset 的值更改为:earliest

Oracle 10.2.0.5 RMAN迁移并升级11.2.0.4一例

一.环境介绍 1. 源数据库环境 操作系统版本: OEL 5.4 x64数据库版本  : 10.2.0.5 x64数据库sid名 : orcl Oracle 10g 10.2.0.5(64bit)安装目录如下: 数据库软件:/u01/app/oracle/product/10.2.0/db_1数据库文件:/u01/app/oracle/oradata/orcl 归档目录:/u01/archivelog RMAN目录:/backup/dbbak/orabak 背景:一个老oracle10g数据库,

【体系结构】Oracle参数介绍

[体系结构]Oracle参数介绍 1  BLOG文档结构图     2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① Oracle中的各种参数介绍及其查询方法 ② Oracle中V$PARAMETER及V$PARAMETER2的区别 ③ 隐含参数的查询.重置.清除 ④ 会话参数和实例参数的查询 ⑤ 静态参数和动态参数.延迟参数 ⑥ V$PARAMETER视图的每列含义(重点) Tips: ①