首页 > 其他分享 >魔术方法

魔术方法

时间:2023-09-22 13:45:30浏览次数:28  
标签:__ self 魔术 mc1 print fajiao 方法 def

# __call__方法的作用

# 以制作蛋糕为例子
# 定义一个类  做蛋糕
class MakeCake:
    # 和面
    def huomian(self):
        print('和面')
    # 发酵
    def fajiao(self):
        print('发酵')
    # 烘烤
    def hongkao(self):
        print('烘烤')
    # 切型
    def qiexing(self):
        print('切型')
    # 抹奶油
    def monaiyou(self):
        print('抹奶油')
    # 加水果
    def jiashuiguo(self):
        print('加水果')
    # 打包
    def dabao(self):
        print('打包')

    # 封装成一个函数  不够高级
    # def getCake(self):
    #     self.huomian()
    #     self.fajiao()
    #     self.hongkao()
    #     self.qiexing()
    #     self.monaiyou()
    #     self.jiashuiguo()
    #     self.dabao()

    # 更进一步,封装成__call__方法  高级 显示了魔术方法的威力
    def __call__(self):
        self.huomian()
        self.fajiao()
        self.hongkao()
        self.qiexing()
        self.monaiyou()
        self.jiashuiguo()
        self.dabao()
# 实例化一个做蛋糕mc1
mc1 = MakeCake()

# 如果每次都这样调用制作蛋糕的方法,比较繁琐,考虑将这些步骤封装到一个方法中
# mc1.huomian()
# mc1.fajiao()
# mc1.hongkao()
# mc1.qiexing()
# mc1.monaiyou()
# mc1.jiashuiguo()
# mc1.dabao()

# mc1.getCake()

# 调用实例显示魔术方法的威力
mc1()
'''
和面
发酵
烘烤
切型
抹奶油
加水果
打包
'''

 

标签:__,self,魔术,mc1,print,fajiao,方法,def
From: https://www.cnblogs.com/haha1988/p/17722124.html

相关文章

  • Java 21的StringBuilder和StringBuffer新增了一个repeat方法
    发现Java21的StringBuilder和StringBuffer中多了repeat方法:/***@throwsIllegalArgumentException{@inheritDoc}**@since21*/@OverridepublicStringBuilderrepeat(intcodePoint,intcount){super.repeat(codePoint,co......
  • C#如何让窗体永远在窗体最前面显示(方法2)
    1、新建一个窗体程序,添加一个Timer以及设置它可用并绑定事件。2、设置窗体的TopMost属性为True3、然后设置代码如下即可实现privatevoidForm1_Load(objectsender,EventArgse){timer1.Start();}privatevoidtimer1_Tick(objectsende......
  • Array 数组的几种方法
    1.arr.keys()返回数组的键名2.arr.values()返回数组的值3.arr.entries()返回数组的键和值4.arr.reduce() 接受两个参数:一个是对数组每个元素执行的回调方法,一个是初始值letsum=arr.reduce(function(prev,cur,index,array){returnprev+cur},0)console.l......
  • 一次性搞懂JS字符串截取方法substring()、slice()以及substr()的用法和区别
    substring()和slice()都接受两个参数,“start”和“end”。“start”表示截取的开始位置,“end”表示结束的位置(不包括该位置的字符,也就是前要后不要)。如果不传参数,则返回字符串本身的一个副本。 如果只传一个参数,则从该位置开始,截取到字符串的末尾。 如果传递两个参数,则......
  • git回退版本方法
    因为idea不知道什么原因抽风,把一些忽略的文件也推送了,须要回退版本1.首先,注意备份2.具体回退方法,来自文心一言ai大模型的回答git回退命令是gitreset--hard1。使用gitreset--hard命令会将HEAD指针、当前分支指针和索引区都移动到指定的commitID,从而重置工作区为该版......
  • Odoo 通过Javascript调用模型中自定义方法
    实践环境Odoo14.0-20221212(CommunityEdition)代码实现在js脚本函数中调用模型中自定义方法:this._rpc({model:'demo.wizard',//模型名称,即模型类定义中_name的值method:'action_select_records_via_checkbox',//模型中自定义名称args:['arg_value......
  • odoo中用javascript调用model中定义好的方法,及要注意的坑
    odoo中如果前端界面要调用后台model中写好的方法,很简单。使用do_action即可,比如要调用改res.users的默认语言后执行的方法odoo.define('switch_language.SwitchLanguageMenu',function(require){"usestrict";varModel=require('web.Model');varsessi......
  • JAVA 后端 记录方法运行时间
     LocalDateTimeldStart=LocalDateTime.now();//记录开始时间//中间是需要计算时间的代码段落LocalDateTimeldEnd=LocalDateTime.now();//记录结束时间Durationdu=Duration.between(ldStart,ldEnd);LongcostSeconds=du.toMillis()/1000;System.out.println("postNurseCo......
  • java内存分配(堆,栈,方法区,常量池)图解
    大家都知道,java程序是运行在jvm(java虚拟机)上的,因此Java的内存分配是在JVM中进行的。那么在程序内存分配上面,大致分为:本地方法栈、程序计数器、虚拟机栈、java堆、方法区。这五类,本次主要讲解的是虚拟机栈、java堆和方法区中的内容。栈:存放基本数据类型的数据、引用数据类型的变量......
  • docker搭建青龙面板及页面空白解决方法
    最近也是想赚点小钱,搭建个青龙面包来挂脚本,但是在搭建过程中遇到过一些问题,所以记录下来。docker搭建青龙面板我这里是使用aliyun服务器进行搭建的,系统是centOS7.6版本。另外docker自行搜索安装即可。拉取青龙面板镜像远程登录服务器,输入命令拉取青龙镜像dockerpullwhyour......