鱼C论坛

 找回密码
 立即注册
查看: 1596|回复: 0

[技术交流] 《零基础入门学习python》第41-44讲笔记

[复制链接]
发表于 2017-7-29 12:08:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 哈哈哈哦 于 2017-7-29 12:07 编辑

魔法方法

1.魔法方法总是被双下划线包围

2.类实例化对象所调用的第一个魔法方法是:__new__;
它的第一个参数是这个实例化对象(cls);
返回的是一个实例化对象。

3.__init__(self)只有在需要初始化参数时才会明确定义,返回值是None,如

  1. # 我们定义一个矩形类,需要长和宽两个参数,拥有计算周长和面积两个方法。
  2. # 我们需要对象在初始化的时候拥有“长”和“宽”两个参数,因此我们需要重写__init__方法


  3. class Rectangle:
  4.         def __init__(self, x, y):
  5.                 self.x = x
  6.                 self.y = y
  7.         def getPeri(self):
  8.                 return (self.x + self.y) * 2
  9.         def getArea(self):
  10.                 return self.x * self.y

  11. >>> rect = Rectangle(3, 4)
  12. >>> rect.getPeri()
  13. 14
  14. >>> rect.getArea()
  15. 12
复制代码


4.__del__并不是相当与调用del,只用当垃圾回收机制回收对象的时候才调用,如
  1. >>> class B:
  2.         def __del__(self):
  3.                 print('我在调用__del__')

  4.                
  5. >>> b1 = B()
  6. >>> b2 =  b1
  7. >>> b3 = b2
  8. >>> del b3
  9. >>> del b2
  10. >>> del b1
  11. 我在调用__del__
复制代码


5.反运算的魔法方法,如__radd__(self,other)。
在 a + b 中,如果a对象的__add__方法没有或无法进行相应的操作,则会调用 b 的__radd__方法

6.其他魔法方法参考
Python 魔法方法详解
http://bbs.fishc.com/thread-48793-1-1.html
(出处: 鱼C论坛)

7.类的静态属性与静态方法
静态属性:在类中直接定义的变量(没有self),引用类的静态属性使用“类名.属性名”的形式。

  1. class C:
  2.     count = 0  # 静态属性

  3.     def __init__(self):
  4.         C.count = C.count + 1  # 类名.属性名的形式引用

  5.     def getCount(self):
  6.         return C.count
复制代码


静态方法:在普通方法的前边加上@staticmethod

  1. class C:
  2.         @staticmethod  # 该修饰符表示 static() 是静态方法
  3.         def static(arg1, arg2, arg3):
  4.                 print(arg1, arg2, arg3, arg1 + arg2 + arg3)

  5.         def nostatic(self):
  6.                 print("I'm the f**king normal method!")
复制代码


静态方法并不需要self参数,因此即使是使用对象去访问,self参数也不会传进去

  1. >>>c1 = C()
  2. >>> c1.static(1, 2, 3)
  3. 1 2 3 6
  4. >>> C.static(1, 2, 3)
  5. 1 2 3 6
复制代码

评分

参与人数 1鱼币 +4 收起 理由
小甲鱼 + 4

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 02:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表