python - class类 (二) 静态属性/类方法/静态方法
静态属性:
#静态属性 = 数据属性 (@property)
class mianji():
def __init__(self,x,y):
self.x = x
self.y = y #类的函数方法:
def mj(self):
z = self.x * self.y
return z #类的函数方法+@property
@property
def mj2(self):
z = self.x * self.y
return z abc = mianji(10,10)
print("类的属性",abc.x)
print('这是mj第一个输出:',abc.mj)
print('这是mj第二个输出:',abc.mj())
print("*"*10)
print('这是mj2第一个输出:',abc.mj2)
print('这是mj2第二个输出:',abc.mj2()) # @在一个函数前加了 @property 后,被修饰的函数转为了类的一个属性,
# 所以在调用的时候不要加括号了.
类方法:
#类方法 (@classmethod)
class leifangfa():
name = 'AA'
def __init__(self,name):
self.name = name #未修饰的类函数方法
def ff(self):
print(self.name) #修饰的类函数方法
@classmethod
def ff2(cls):
print(cls.name) #当类调用自己的方法时,会报错(需要传递self参数)
# leifangfa.ff()
#那怎么样类能够调用自己的方法而不报错呢?
leifangfa.ff2() #当然实例化后,实例调用这个修饰的函数方法时也只跟类方法有关,跟实例无关
abc = leifangfa("anec")
#实例调用类的方法
abc.ff2()
静态方法:
#静态方法(staticmethod)
#名义上归属类管理,不能使用类变量和实例变量,是类的工具包 class jingtaifangfa():
x = 1
def __init__(self,name):
self.name = name @staticmethod
def jtff(x,y):
z = x * y
return z #类调用静态方法:
print(jingtaifangfa.jtff(2, 2)) #实例调用静态方法:
abc = jingtaifangfa("anec")
print(abc.jtff(2, 2)) #静态方法相当于剥离与类属性、方法的绑定,单独可以被类和实例调用. # 拓展:
#当类方法不被修饰为静态方法时:
class jingtaifangfa():
x = 1
def __init__(self,name):
self.name = name def jtff(x,y):
z = x * y
return z #类能调用这个函数方法:
print(jingtaifangfa.jtff(2, 2)) #实例是不能调用这个函数方法的
abc = jingtaifangfa("anec")
print(abc.jtff(2, 2))
python - class类 (二) 静态属性/类方法/静态方法的更多相关文章
- python的类的 静态属性 类方法 静态方法
一.静态属性 静态属性说的就是数据属性 1.定义一个房间的类,求下这个房间的面积 class Room: def __init__(self,name,ower,width,length,heigh) ...
- JS面向对象(3) -- Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...
- Class的使用,构造方法,实例属性和实例方法,静态属性和静态方法,this和super关键字,类的继承
s6新增了一种定义对象实例的方法,Class(类)这个概念,作为对象的模板.class可以看作只是一个语法糖,通过class关键字,可以定义类.让对象原型的写法更加清晰.更像面向对象编程的语法. 一. ...
- PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化)/约束类型/魔术方法小结
前 言 OOP 学习了好久的PHP,今天来总结一下PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化). 1 PHP中的抽象 ...
- PHP static静态属性和静态方法
这里分析了php面向对象中static静态属性和静态方法的调用.关于它们的调用(能不能调用,怎么样调用),需要弄明白了他们在内存中存放位置,这样就非常容易理解了.静态属性.方法(包括静态与非静态)在内 ...
- php面向对象中static静态属性和静态方法的调用
这篇文章主要介绍了php面向对象中static静态属性和静态方法的调用,实例分析了static静态属性和静态方法的原理与调用技巧,需要的朋友可以参考下 本文实例讲述了php中static静态属性和静态 ...
- php静态属性和静态方法
php静态属性和静态方法 2012-09-29 10:18 1518人阅读 评论(0) 收藏 举报 phpfunction 本php教程主要是学习php中静态属性和静态方法的使用方法和基本的示例. · ...
- static静态属性和静态方法的原理与调用技巧
这篇文章主要介绍了php面向对象中static静态属性和静态方法的调用,实例分析了static静态属性和静态方法的原理与调用技巧,需要的朋友可以参考下 本文实例讲述了php中static静态属 ...
- PHP使用static关键字声明静态属性和静态方法
PHP使用static关键字声明静态属性和静态方法 在PHP中,通过static关键字修饰的成员属性和成员方法被称为静态属性和静态方法. 静态属性和静态方法不需要在被类实例化的情况下就可以直接使用. ...
随机推荐
- 掌握 MySQL 这 19 个骚操作,效率至少提高3倍
本文我们来谈谈项目中常用的MySQL优化方法,共19条,利用好这19条方法,会让你的效率提升至少3倍. 1.EXPLAIN 做MySQL优化,我们要善用EXPLAIN查看SQL执行计划. 下面来个简单 ...
- 【转】cJSON 源码阅读笔记
前言 cjson 的代码只有 1000+ 行, 而且只是简单的几个函数的调用. 而且 cjson 还有很多不完善的地方, 推荐大家看完之后自己实现一个 封装好的功能完善的 cjson 程序. json ...
- java.net.SocketException: Connection reset 硬件防火墙也有罪?
今天早上例行进行远程备份,可是我却发现,整个备份过程无法顺利完成. 在备份的过程中不断的抛出异常: java.net.SocketException: Connection reset 奇怪,在之前的 ...
- MATLAB:图形加法运算(imadd函数)
close all; %关闭当前所有图形窗口,清空工作空间变量,清除工作空间所有变量 clear all; clc; I=imread('rice.png'); %读入图像rice,赋值给I J=im ...
- BRIEF特征简介
引言 该文是由EPFL的Calonder在ECCV2010上提出了一种可以快速计算且表达方式为二进制编码的描述子.主要思路就是在特征点附近随机选取若干点对,将这些点对的灰度值的大小,组合成一个二进制串 ...
- springboot的跨域
https://www.cnblogs.com/520playboy/p/7306008.html 1.对于前后端分离的项目来说,如果前端项目与后端项目部署在两个不同的域下,那么势必会引起跨域问题的出 ...
- Java需要强制捕获的异常
Java编译器要求我们强制捕获Excetion,但不包括RuntimeException 不强制要求捕获Error和RuntimeException是因为,这两种异常我们程序一般无能为力,而其他Exc ...
- python 压缩文件为zip后删除原文件
压缩.log 文件为zip后删除原文件 需要注意:本人作为小白,该脚本需要和.log在一起,后面有时间需要改正. #!/usr/local/python/bin/python #-*-coding=u ...
- 标准遗传算法(实数编码 python实现)模拟二进制交叉SBX 多项式变异
代码地址: https://github.com/guojun007/real_sga 本部分是采用实数编码的标准遗传算法,整体流程与上一篇二进制编码的基本一致, 主要区别在于本部分的交叉操作为模拟二 ...
- nginx的负载均衡配置,常用策略
场景:nginx是一款非常优秀的负载均衡服务器,小巧而且性能强悍,中小型企业的首选. 下面介绍nginx的负载均衡的几种常见的配置以及优缺点 第一种:轮询(默认) 优点:实现简单 缺点:不考虑每台服务 ...