zoukankan      html  css  js  c++  java
  • Python之面向对象编程

    1.类的形式:

    class Student(object):

             def __init__(self, name,age):

                       self.name=name

                       self.age=age

             def toString(self):

                       print “name: %s age:%s”(self.name, self.age )

    类名Student(首字母一般大写),括号内是继承的类,任何类都会继承于object类;__init__方法定义了student的初始化(构造方法);toString方法是类的方法;在方法名或属性名前加上“__”表示方法或属性名为私有;self表示类自身,类似于this。

    2.类的继承与多态与java类似。

    3.动态绑定属性和方法(以上面的类为例)

    s = Student(“song”,22)

    s.score = 90

    print s.score

    这时,score这个属性绑定到实例s上,通过s就可以访问这个属性,但是如果需要限制绑定,可以在class的开头加入这样一条代码:

    __slots__=(‘name’, ‘age’)

    这样一来,class就只有name和age两个属性,其它属性的绑定会报错

    def birthday(self):

             self.age=self.age+1

             print “Happy birthday!”

    from types import MethodType

    s = Student(“song”,22)

    s.birthday = MethodType(birthday, s, Student)

    s.birthday()

    这时,birthday这个方法绑定到实例s上,如果实例化另外一个Student时,是无法调用birthday方法的。如果要实现Student的任何实例化对象都能够调用,需要这样做,

    Student.birthday= MethodType(birthday, None, Student)

    ps:动态绑定是动态语言特有的功能

  • 相关阅读:
    数据库(六):多表关系
    数据库(五):约束关系
    数据库(四):数据类型
    数据库(三):存储引擎
    数据库(二):初识sql语句
    数据库(一):初识数据库
    番外:socketserver用法
    ~~并发编程(十六):协程理论~~
    ~~并发编程(十五):进程池线程池~~
    ~~并发编程(十四):Queue~~
  • 原文地址:https://www.cnblogs.com/songxh-scse/p/5644627.html
Copyright © 2011-2022 走看看