#-*- coding:utf-8 -*-

#本次学习:对象方法、静态方法、类方法

class SeniorTestingEngineer:
#属性--只能对象来调用self.salary
work_year=3
salary=15000
#行为 函数 #self对象方法
def coding(self,language,rows):#self(不能缺少)用来标记这个方法是对象方法,这个方法只能对象来调用
print('{0}代码一级棒,一天写{1}行代码'.format(language,rows))
print('工作年限是{0},月薪是{1}'.format(self.work_year,self.salary))#用对象来调用属性值 @staticmethod#静态方法:是类中的函数,不需要特意创建对象来调用,当然也可以创建对象调用
def do_mysql(name):
print('数据库一级棒')
# print('工作年限是{0},月薪是{1}'.format(self.work_year,self.salary))#静态方法无法调用属性值,因为没有对象,AttributeError: 'str' object has no attribute 'work_year' @classmethod#类方法
def do_linux(cls):#传一个类名进来
print('linux一级棒')
print('工作年限是{0},月薪是{1}'.format(cls.work_year,cls.salary))#类方法必须用类名来调用属性值 def do_auto_testing(self):
print('自动化测试一级棒') #对象方法
#1.对象方法 有 self
#2.对象方法可以通过对象self调用类里面的任意属性值
#3.只能由对象来调用 p1=SeniorTestingEngineer()#创建一个对象
p1.coding('python',500)


#静态方法
#1.静态方法 用 @staticmethod装饰
#2.静态方法无法调用属性值,所以不会涉及到类中的方法和属性的操作
#3.什么时候用静态方法:如果一个方法跟类里面的属性没有任何关联时使用静态方法
#4.支持对象和类名直接调用 SeniorTestingEngineer.do_mysql('')#静态方法,用类名.函数名调用
SeniorTestingEngineer().do_mysql('oracle')#静态方法,用对象.函数名调用

#类方法
#1.类方法 用@classmethod装饰
#2.类方法可以调用类中的属性,但是必须用类名来调用属性值
#3.支持对象和类名直接调用
SeniorTestingEngineer.do_linux()#类方法,支持用类名.函数名调用
SeniorTestingEngineer().do_linux()#类方法,支持用对象.函数名调用


												

python-对象方法、静态方法、类方法的更多相关文章

  1. Objective-C 类,实例成员,静态变量,对象方法,类方法(静态方法),对象,

    Objective-C 类,实例成员,静态变量,对象方法,类方法(静态方法),对象, 一.类 在ios中,类的声明和实现时分离的,也就是说不能写在同一个文件中,声明放在 .h文件中,实现放在 .m 文 ...

  2. 分析 js构造函数:对象方法 、类方法 、原型方法

    构造函数方法有对象方法.类方法.原型方法,这些方法在什么时候可以调用,什么时候不能调用,为什么? function Func(name){ this.name=name; this.ff=functi ...

  3. Objective-C学习笔记(十八)——对象方法和类方法的声明,定义及调用

    在程序设计中,函数的使用无疑大大简化了代码的编写.提高代码执行的效率.降低反复代码. 所以如今我们来具体研究一下方法. 本样例还是以People类为例. (一)代码一: (1)先在People.h中声 ...

  4. Objective-C学习笔记(十九)——对象方法和类方法的相互调用

    事实上在OC的对象方法(减号方法)和类方法(加号方法)并非相互独立的,它们也能够发生千丝万缕的关系,今天我们来研究下它们两者相互调用的问题.该样例还是以People类为基础. (一)对象方法调用类方法 ...

  5. iOS对象方法和类方法的区别与调用方式

    作为一个iOS程序员初学者,会搞不清楚对象方法和类方法的区别 -(void)duixiangfangfa ; +(void)leifangfa; - 代表实例方法,它在类的一个具体实例范围内执行,也就 ...

  6. python--类中的对象方法、类方法、静态方法的区别

    1.对象方法:顾名思义,是对类实例化后的对象有效的,由对象调用 2.类方法:第一个参数是cls(当前类),是对当前类做的额外的处理,类方法需要用类去调用,而不是实例对象调用 3.静态方法:没有参数!没 ...

  7. js 对象方法、类方法、原型方法的区别;私有属性、公有属性、公有静态属性的区别

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  8. day 23 二十三、对象方法,类方法,封装,绑定方法

    一.对象的特有名称空间 __init__方法会在实例化对象时被调用 1.会为实例化的对象形成空的名称空间 2.就是一个方法,可以被传参,在类名(实参)这种方式下调用并传参 __init__(self ...

  9. 对象方法、类方法、原型方法 && 私有属性、公有属性、公有静态属性

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  10. js 对象方法、类方法、原型方法区别

    function People(name){this.name=name;//对象方法this.Introduce=function(){alert("My name is "+t ...

随机推荐

  1. PyCharm 连接Git及使用

    一.PyCharm配置Git的环境 1.PyCharm 连接Git首先需要本机安装Git软件; 2.PyCharm 版本控制中设置Git的执行路径,file->Setting->Versi ...

  2. java-常用注解

    JDK自带注解 @Override 重写, 标识覆盖它的父类的方法 @Deprecated   已过期,表示方法是不被建议使用的 @Suppvisewarnings 压制警告,抑制警告 元注解 @Ta ...

  3. 干货-递归下降分析器 笔记(具体看Python Cookbook, 3rd edition 的2.19章节)

    import re import collections # 写将要匹配的正则 NUM = r'(?P<NUM>\d+)' PLUS = r'(?P<PLUS>\+)' MIN ...

  4. Flume 拦截器(interceptor)详解

    flume 拦截器(interceptor)1.flume拦截器介绍拦截器是简单的插件式组件,设置在source和channel之间.source接收到的事件event,在写入channel之前,拦截 ...

  5. 《Windows核心编程》第3章——深入理解handle

    本文借助windbg来理解程序中的函数如何使用handle对句柄表进行查询的.所以先要开启Win7下Windbg的内和调试功能. 解决win7下内核调试的问题 win7下debug默认无法进行内核调试 ...

  6. CentOS 6.5 下源码搭建LAMP环境

    参考网站: http://wenku.baidu.com/link?url=Cvkqss2E9mnxXOZigMWPaCfqwsBxnm0sZ4aKE2oLAgQ888XxeC0DWOChxVqiHz ...

  7. php+phpspreadsheet读取Excel数据存入mysql

    先生成Excel模板,然后导入Excel数据到mysql,每条数据对应图片上传到阿里云 <?php /** * Created by PhpStorm. * User: Administrato ...

  8. SDI core端口说明

    SDI core端口说明 本文基于赛灵思的官方文档以及自己的理解: 1.生成SDI core 2.得到SDI core的顶层文件,并对每个端口做出解释 smpte_sdi smpte_sdi ( .r ...

  9. docker-compose编排springcloud微服务

    .创建注册中心Eureka package com.dan.eurekaserver; import org.springframework.boot.SpringApplication; impor ...

  10. Winform 界面全屏 显示状态栏

    this.FormBorderStyle = FormBorderStyle.None; this.MaximumSize = new Size(Screen.PrimaryScreen.Workin ...