码迷,mamicode.com
首页 > 编程语言 > 详细

python面向对象(高级)1+1=2

时间:2019-09-26 21:19:45      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:icm   __init__   center   利用   self   字典   obj   场景   eth   

面向对象

  class Foo:
  #静态字段,属于类
  country=‘中国‘

  def __init__(self,name):
  #普通字段
  self.name=name

  #普通方法
  def show(self):
  print(self.name)

  #静态方法
  @staticmethod
  def sta(a1,a2):
  print(a1,a2)

  #类方法
  @classmethod
  def classmd(cls):
  #cls是类名
  print(cls)
  print(‘classmethod‘)

  #属性/特性
  @property            def f1(self):      def f2(self):          def f2(self):
  def per(self,a):      或      return 1         print(a)            del self.name
  print(a)                         return 1           删除对象的name字段
  return 1             per=property(fget=f1,fset=f2,fdel=f3)

  Foo.country
  obj=Foo(‘anner‘)
  obj.name
  Foo.show(obj)
  obj.show()
  Foo.sta(1,2)#静态方法,通过类名就可以调用
  Foo.classmd()#系统自动将类名传入,赋给cls参数
  a=obj.per=123#属性/特性,调动时跟调用字段相同,不用加括号。为其赋值传进参数
  del obj.per#属性/特性,调用f3,删除对象的name字段
  print(a)

类成员:
  #字段
  ——普通字段,保存在对象中,只能通过对象访问
  ——静态字段,保存在类中,执行可以通过对象访问,也可以通过类访问

  #方法
  ——普通方法,保存在类中,由对象调用self==>对象
  ——静态方法,保存在类中,加装饰器,由类可以直接调用,self就不是必须的了
  ——类方法,保存在类中,加装饰器,由类可以直接调用,cla==>当前类
  #属性/特性
  ——普通方法加装饰器,但调动时跟调用字段相同,不用加括号。
########应用场景:
  如果对象中需要保存一些值,执行某功能时,需要使用对象中的值==>普通方法
  不需要任何对象中的值,静态方法
  在列表,集合,字典调用中索引值可能通过方法调用得出,所以写法会比较乱;所以利用特性装饰方法后可以省去方法调用时的括号,便于阅读

python面向对象(高级)1+1=2

标签:icm   __init__   center   利用   self   字典   obj   场景   eth   

原文地址:https://www.cnblogs.com/TianLiang-2000/p/11594000.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!