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

Python学习笔记(十)

时间:2017-09-16 11:56:16      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:getter   cal   函数   ret   python语言   bsp   方法   set   sch   

一、类和构造函数的定义

  class 类名(object):
    def __init__(self,name,score):
      self.name = name
      self.score = score
    def show_info(self):
      print("name=",name,"score=",score)

  类名通常大写


二、通过变量生成实例

  student1 = Student("cq",100)


三、自由的为对象实例添加属性

  student1 = Student("cq",100)
  student1.school = "school"


四、访问权限限制

  name : public的,外界可访问
  __name__ :特殊的,外界可以访问
  __name:私有的
  _name:私有的,外界可访问,但请将其视为私有的


五、获取对象信息

  type(对象)
  type(123)==int

  import types
  type(fn) = types.FunctionType #判断是否为函数类型
  type(fn) == types.BuiltinFunctionType
  type(fn) == types.LambdaType
  type(fn) == types.GeneratorType

  isinstance(对象,类型)

  dir(对象)


六、__XX__特殊方法

  类似__XX__的是特殊方法,在Python中有特殊用途,例如使用len()函数时将自动调用对象中的__len__


七、动态增加实例属性

  对象.属性 = 属性值


八、类属性

  类属性是属于类的,可以在类中直接定义,但其实例也可以访问类属性

  class Person:
    name = "CQ"
    def __init__(self):
      pass


九、动态绑定方法

  def show_info(self):
    print("Hello World!")

  from types import MethodTypes
  s.show_info = MethodTypes(show_info(),s)
  s.show_info()


十、动态绑定类方法

  from types import MethodTypes

  calss S(object):
    pass

  def show(self):
    print("Hello")

  s1 = S()
  s1.show()


十一、限制动态添加的实例属性

  Python语言支持限制可以动态添加的实例属性,通过__slots__可指定动态添加的属性

  class S(object):
    __solts__ = ("name","age")


十二、为类设置属性

  通过使用Python内置的装饰器@property可以将方法中的变量设置为属性,@property设置于getter方法

  class Student(object):
    def __init__(self,name,age):
      self.__name = name
      self.__age = age
    @property
    def name(self):
      return self.__name
    @name.setter
    def name(self,value):
      self.__name = value
    @proprety
    def age(self):
      return self.__age

    本实例中将 get_name 和 set_name 合并封装为了类的属性name,并将age封装设置为了类的只读属性
    

  

 

Python学习笔记(十)

标签:getter   cal   函数   ret   python语言   bsp   方法   set   sch   

原文地址:http://www.cnblogs.com/userchencq/p/7529976.html

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