zoukankan      html  css  js  c++  java
  • python 类

    1、类和实例 #类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。

    #__init__ 方法 ,其第一个参数永远是self,print_score也是方法。 name score 属性

    class Student(object):

        def __init__(self, name, score):
            self.name = name
            self.score = score

      def print_score(self):
            print('%s: %s' % (self.name, self.score))

    #如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问

    class Student(object):

        def __init__(self, name, score):
            self.__name = name
            self.__score = score

        def print_score(self):
            print('%s: %s' % (self.__name, self.__score))

    #实例属性和类属性给实例绑定那个属性

    class Student(object):
        pass

    s=Student() s.name='Michael'

    给实例绑定方法

    def set_age(self, age): # 定义一个函数作为实例方法
          self.age = age

    from types import MethodType
    s.set_age = MethodType(set_age, s) # 给实例绑定一个方法
    s.set_age(25)

    给class绑定方法

    Student.set_score = set_score

    #__slots__

    Python允许在定义class的时候,定义一个特殊的__slots__变量,来限制该class实例能添加的属性。

    __slots__定义的属性仅对当前类实例起作用,对继承的子类是不起作用的。

    class Student(object):
        __slots__ = ('name', 'age')

    # @property Python内置的@property装饰器就是负责把一个方法变成属性调用的

    class Student(object):

        @property
        def score(self):
            return self._score

        @score.setter
        def score(self, value):
            if not isinstance(value, int):
                raise ValueError('score must be an integer!')
            if value < 0 or value > 100:
                raise ValueError('score must between 0 ~ 100!')
            self._score = value

    #定制类 枚举类 元类

  • 相关阅读:
    【原创翻译】The Free Lunch Is Over
    【原创】基于ZYNQ7000的交叉编译工具链Qt+OpenCV+ffmpeg等库支持总结(二)
    【原创】基于ZYNQ7000的交叉编译工具链Qt+OpenCV+ffmpeg等库支持总结(一)
    实现内容提供者步骤
    为什么需要内容提供者
    aidl的应用场景
    aidl介绍
    百度音乐盒框架
    通过接口方式调用服务里面的方法
    通过bindservice方式调用服务方法里面的过程
  • 原文地址:https://www.cnblogs.com/emma-zhu/p/6777924.html
Copyright © 2011-2022 走看看