@staticmethod/@classmethod/实例方法/@abstractmethod
from abc import ABCMeta, abstractmethod
# 定义一个抽象类
class Person(metaclass=ABCMeta):
name = "泰山"
@classmethod # 类方法
def walking(cls):
print("{}在走路".format(cls.name))
@abstractmethod # 抽象方法
def drinking(self):
pass
@staticmethod # 静态方法
def sleeping(name):
print("{}在睡觉".format(name))
class Student(Person):
# 抽象方法
def drinking(self):
print("{}在喝水".format(self.name))
# 实例方法
def studying(self):
print("好好学习天天向上")
if __name__ == '__main__':
s = Student()
#实例化的对象可以调用类方法装饰器装饰的函数
s.walking()
# 实例化的对象调用抽象方法(子类要实现用装饰器装饰的抽象方法)
s.drinking()
#实例化的对象调用实例方法
s.studying()
#类不能调用实例方法
Student.studying()
#要想类也能调用实例方法或抽象方法,需要将实例对象传入即可
Student.studying(s)
Student.drinking(s)
# 类可以调用类方法装饰器装饰的函数
Student.walking()
# 实例化的对象和类可以调用静态方法装饰器装饰的函数
s.sleeping(s.name)
Student.sleeping(Student.name)
@staticmethod/@classmethod/实例方法/@abstractmethod的更多相关文章
- instancemethod, staticmethod, classmethod & abstractmethod
实例方法.静态方法.类方法.抽象方法 1. Python中方法的工作方式(How methods work in Python) A method is a function that is sto ...
- Python staticmethod classmethod 普通方法 类变量 实例变量 cls self 概念与区别
类变量 1.需要在一个类的各个对象间交互,即需要一个数据对象为整个类而非某个对象服务. 2.同时又力求不破坏类的封装性,即要求此成员隐藏在类的内部,对外不可见. 3.有独立的存储区,属于整个类. ...
- python staticmethod classmethod
http://www.cnblogs.com/chenzehe/archive/2010/09/01/1814639.html classmethod:类方法staticmethod:静态方法 在py ...
- Python中的 @staticmethod@classmethod方法
python类中有三种方法,常见的是实例方法,另外两种是staticmethod装饰的静态方法,和classmethod装饰的类方法. 1.对比 流畅的python里,用一个例子进行了对比: (1)两 ...
- python staticmethod,classmethod方法的使用和区别以及property装饰器的作用
class Kls(object): def __init__(self, data): self.data = data def printd(self): print(self.data) @st ...
- python 类中staticmethod,classmethod,普通方法
1.staticmethod:静态方法和全局函数类似,但是通过类和对象调用. 2.classmethod:类方法和类相关的方法,第一个参数是class对象(不是实例对象).在python中class也 ...
- python中staticmethod classmethod及普通函数的区别
staticmethod 基本上和一个全局函数差不多,只不过可以通过类或类的实例对象 (python里光说对象总是容易产生混淆, 因为什么都是对象,包括类,而实际上 类实例对象才是对应静态语言中所谓对 ...
- python之内置装饰器(property/staticmethod/classmethod)
python内置了property.staticmethod.classmethod三个装饰器,有时候我们也会用到,这里简单说明下 1.property 作用:顾名思义把函数装饰成属性 一般我们调用类 ...
- staticmethod classmethod
1. 静态方法 @staticmethod 只是名义上归类管,实际上静态方法里访问不了类或者实例中的任何属性 2. 类方法 @classmethod 只能访问类变量,不能访问实例变量 3.属性方法 @ ...
- staticmethod classmethod修饰符
一.staticmethod(function) Return a static method for function.A static method does not receive an imp ...
随机推荐
- [转帖]Spring Cloud Alibaba Nacos 注册中心使用教程
一. 什么是Nacos Nacos是一个更易于构建云原生应用的动态服务发现(Nacos Discovery ).服务配置(Nacos Config)和服务管理平台,集注册中心+配置中心+服务管理于一身 ...
- ESXi重置密码以及修改网络IP地址的方法
Study From https://www.cnblogs.com/mk21/p/15784082.html 前期公司有部分虚拟化的服务器因为只通过vCenter进行管理. 导致密码遗失. 最近因为 ...
- 关于SSL证书的学习与总结
关于证书 证书是用来实现https通信加密的基础, 有证书才能够进行相关的TLS层的加密处理. 本文简要讲解一下证书的申请,创建以及使用等. 第一部分: PKI 公共密钥基础 其实有很多家企业在做PK ...
- Linux 清理 防火墙已有IP地址的方法
最简单的处理 for i in `firewall-cmd --zone=trusted --list-sources` ;do firewall-cmd --zone=trusted --remov ...
- 深入浅出RPC服务 | 不同层的网络协议
导读: 本系列文章从RPC产生的历史背景开始讲解,涉及RPC核心原理.RPC实现.JSF的实现等,通过图文类比的方式剖析它的内部世界,让大家对RPC的设计思想有一个宏观的认识. 作者:王禹展 京东 ...
- CouchDB vs. LevelDB
CouchDB 和 LevelDB 都是数据库系统,但它们在很多方面有着不同的设计和应用重点.下面是对这两个数据库在一些关键点上的对比: 数据模型: CouchDB:CouchDB 是一种面向文档的数 ...
- 站点用css一键变灰色
默哀站点变灰色效果看本站即可 css代码如下 <style>html{-webkit-filter:grayscale(100%);-moz-filter:grayscale(100%); ...
- LeetCode刷题日记 2020/03/26
题干 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc ...
- workman在线五子棋
一.下载安装workman,地址:https://github.com/walkor/workerman composer require workerman/workerman 二.cd到worke ...
- ElasticSearch7.3学习(四)----结合Spring boot进行增删改查和批量(bulk)详解
1.前置 java api 文档 https://www.elastic.co/guide/en/elasticsearch/client/java-rest/7.3/java-rest-overvi ...