zoukankan      html  css  js  c++  java
  • 实例属性和类属

    1.Python是动态语言,根据类创建的实例,可以任意绑定属性

    2.给实例绑定属性的方法有两种:

      通过实例变量或者通过self变量。

    1 class Student(object):
    2     def __init__(self, name):
    3     self.name=name
    4 
    5 ##或者如下:
    6 >>>s = Student("bob")
    7 >>>s.score = 90

    如果类本身需要属性,这个属性虽然归类所有,但是类的所有实例都可以访问到。

    给实例绑定方法的用法如下:

    1 >>>def set_age(self, age):
    2            self.age = age
    3 
    4 
    5 >>>from types import MethodType
    6 >>>s.set_age = MethodType(set_age, s) ##给实例绑定一个方法
    7 >>>s.set_age(28)   ###调用实例的方法
    8 >>>s.age                 ###测试结果
    9 25

    但是给一个实例绑定的方法,对另一个实例是不起作用。(其实这样有很多的好处)

    此外:如果所有的实例都有相同的方法,可以给class绑定方法,这是类的继承

    给class绑定方法如下:

    >>>def set_score(self, score): 
            self.score = score 
    >>>Student.set_score = MethodType(set_score, Student)      

    其实和实例的绑定方法一样的。

    ***

    通常情况下:上面的set_score方法可以直接定义在class中,但是动态绑定允许我们在程序运行的

    过程中动态给class加上功能,这在静态语言中很难实现。

     

  • 相关阅读:
    python基础之函数(基础七)
    python基础之文件操作(基础六)
    python基础之数据类型补充(基础五)
    python之深浅拷贝(基础四)
    python基础数据类型之字典(基础三)
    python基础数据类型之列表,元组(基础二)
    python基础入门二
    随笔
    oss 上传照片失败
    mysql 同表查询更新
  • 原文地址:https://www.cnblogs.com/lmt921108/p/7570793.html
Copyright © 2011-2022 走看看