首页 > 编程语言 >Python @classmethod decorator and static method All In One

Python @classmethod decorator and static method All In One

时间:2023-07-27 15:22:49浏览次数:34  
标签:square width Python self height classmethod static

Python @classmethod decorator and static method All In One

修饰器/装饰器;静态方法;实例方法

# cls
class Rectangle:
  def __init__(self, width, height):
    self.width = width
    self.height = height
  # 实例方法
  def calculate_area(self):
    return self.width * self.height
  # 类方法 (类似 js 的 static method)
  @classmethod
  def new_square(cls, side_length):
    return cls(side_length, side_length)

# 类方法
square = Rectangle.new_square(5)
print("类方法", square.calculate_area())

# 类实例方法
s = Rectangle(3, 3)
print("类实例方法", s.calculate_area())

"""
$ py3 ./classmethod-decorator.py

类方法 25
类实例方法 9

"""

demos

(

标签:square,width,Python,self,height,classmethod,static
From: https://www.cnblogs.com/xgqfrms/p/17585057.html

相关文章

  • python使用ctypes调用gcc编译的dll之ctypes的使用
    简介ctypes是Python的外部函数库。它提供了与C兼容的数据类型,并允许调用C或C++编译后的DLL或共享库中的函数。可使用该模块以纯Python形式对这些库进行封装。本例中代码基于window系统,python为64位3.9.12,如需在liunx上使用请参考上篇博客1、代码的基础结构如下1.1新......
  • Python数据可视化-折线图
    Python数据可视化-折线图一、JSON数据格式1.1什么是jsonJSON是一种轻量级的数据交互格式。可以按照JSON指定的格式去组织和封装数据JSON本质上是一个带有特定格式的字符串主要功能:json就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互1.2json......
  • python 日志
    #coding:utf-8importloggingimportsysimportosimportdatetimefromloggingimporthandlersclassLogger(object):def__init__(self,name):LOGGING_TO_CONSOLE=TrueLOGGING_LEVEL=logging.DEBUGLOGGING_FORMATTER='%(asc......
  • python使用多进程multiprocessing执行报错
        inthemainmodule:      if__name__=='__main__':        freeze_support()        ...    The"freeze_support()"linecanbeomittediftheprogram    isnotgoingtobefrozentop......
  • 一个能提高写代码效率的方法:AI+Python
    ​ 在今年之前,我们都以为AI只能取代底层的劳动密集型工作,涉及创意、思维和感情的工作是不会被AI取代的,但自今年年初,人工智能异军突起狠狠将我们打脸。 今年火爆的聊天机器人仅仅作为“弱人工智能”,就让大批翻译、文案、设计、程序员等行业人员瑟瑟发抖,各路专家认为,未来人工......
  • 轻松用Python控制你的手机
    ​“Python编程几乎能做任何事,只要你敢想,敢尝试!”,今天来看下用Python代码怎么来控制你的安卓手机。具体的说是代替你的手,实现自动的触摸和一些动作,实现自动化操作! 主要用的是安卓手机的Android调试桥(AndroidDebugBridge),它是一个非常有用的工具!本文的这个快速指南中,我将向你......
  • 基于Python的HTTP代理爬虫开发初探
     在数字化时代,网络数据的获取对于企业和个人都变得至关重要。然而,许多网站为了保护其数据和资源,采取了反爬虫措施,使得我们无法直接访问和获取所需的信息。这时,HTTP代理爬虫就成为了一项强大的工具,它可以帮助我们绕过限制,有效地进行数据采集。在本文中,将介绍基于Python的HTTP代理......
  • [oeasy]python0075_删除变量_del_delete_variable
    删除变量回忆上次内容上次我们研究了字节序字节序有两种 符号英文名称中文名称<little-endian小字节序>big-endian大字节序字节序用来明确整型数字存储的顺序 如果读写数字出了错......
  • 深入Scikit-learn:掌握Python最强大的机器学习库
    本篇博客详细介绍了Python机器学习库Scikit-learn的使用方法和主要特性。内容涵盖了如何安装和配置Scikit-learn,Scikit-learn的主要特性,如何进行数据预处理,如何使用监督学习和无监督学习算法,以及如何评估模型和进行参数调优。本文旨在帮助读者深入理解Scikit-learn,并有效地应用在......
  • 使用Python统计下桌面某个文件夹下(含多层子文件夹)具体文件的数量(方法二)
    大家好,我是皮皮。一、前言前几天在Python最强王者群【东哥】问了一个Python自动化办公的问题,一起来看看吧。这个是他自己在实际工作中遇到的需求,正好遇到了这个问题,想着用Python来实现下。二、实现过程上一篇文章中已经分享了一个方法,这一篇文章继续分享另外一个方法,由【小王......