鱼C论坛

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

[技术交流] 零基础入门学习Python 第40讲 类和对象 一些相关的BIF

[复制链接]
发表于 2018-4-6 17:28:18 | 显示全部楼层 |阅读模式

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

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

x
  1. 课堂笔记:
  2.   1. 和类判定有关的方法是
  3.       a. issubcalss(class,calssinfo),判定子类
  4.           i. 一个类是自己的子类
  5.           ii. classinfo是元祖,只要元祖中一个类对象是,就为True
  6.           iii. 子类是True,父类在元祖中,也是True
  7.       b. isinstance(object,class)
  8.   2. 和属性有关的方法是:
  9.       a. hasattr(object,name),name是字符串
  10.       b. getattr(object,name[,default])
  11.       c. setattr(object,name,value)
  12.       d. delattr(object,name)
  13.       e. property(getx,setx,delx)
  14.   3. 修饰符:
  15.       a. @something
  16.       b. f()
  17.       c. ==
  18.       d. f = something(f)

  19. 测试题:
  20. 0.
  21. 使用issubattr(子类,父类),如果返回True,则前面是后面的子类,反之亦然
  22. 1.
  23. 使用isinstance(实例对象,类),如果实例对象来自于类,则返回True,否则返回False.
  24. 2.
  25. 先用hasattr(对象,属性)来判断,如果为真,则继续.
  26. 3.
  27. 对用户很有效,当改变内部方法名的时候,只需要在内部改变就可以了,对外仍然用property的方法名,看做封装的效果.
  28. 4.
  29. x = property(getSize,setSize,delSize)
  30. 5.
  31. ##class CodeA:
  32. ##    def foo():
  33. ##        print("调用静态方法 foo()")
  34. ##
  35. ##        # 将 foo() 方法设置为静态方法
  36. ##        foo = staticmethod(foo)

  37. ##代码A
  38. class CodeA:
  39.     def __init__(self,func):
  40.         self._func = func
  41.     def __call__(self):
  42.         # 将 foo() 方法设置为静态方法
  43.         self._func()
  44.         self._func = staticmethod(self._func)

  45. @CodeA #foo = CodeA(foo)
  46. def foo():
  47.     print("调用静态方法 foo()")

  48. foo()

  49. class CodeA:
  50.         @staticmethod
  51.     def foo():
  52.         print("调用静态方法 foo()")


  53. ##代码B
  54. ##class CodeB:
  55. ##    def foo(cls):
  56. ##        print("调用类方法 foo()")
  57. ##
  58. ##        # 将 foo() 方法设置为类方法
  59. ##        foo = classmethod(foo)

  60. class CodeB:
  61.     def __init__(self,func):
  62.         self._func = func
  63.     def __call__(self):
  64.         self._func()
  65.         self._func = classmethod(self._func)

  66. @CodeB
  67. def foo():
  68.     print('调用类方法 foo()')

  69. foo()

  70. class CodeB:
  71.         @classmethod
  72.     def foo(cls):
  73.         print("调用类方法 foo()")


  74. 6.
  75. f = something(f)
  76. def f():
  77.     print('I love FishC.com')

  78. 7.
  79. class C:
  80.     def __init__(self):
  81.         self._x = None

  82.     @property
  83.     def x(self):
  84.         """I'm the 'x' property."""
  85.         return self._x

  86.     @x.setter
  87.     def x(self, value):
  88.         self._x = value

  89.     @x.deleter
  90.     def x(self):
  91.         del self._x
复制代码

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-2 10:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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