zoukankan      html  css  js  c++  java
  • python面向对象

    面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。

    创建一个学生类及其实例:

    class Student(object):
        def _init_(self,name,sex,age,english,math):
            self._name = name
            self._sex = sex
            self._age = age
            self._english = english
            self._math = math
        
        def sumScore(self):
            return self._english + self._math
    
    
    if __name__=='__main__':
        s = Student()
        s._name = '小红'
        s._age = 18
        s._sex = ''
        s._english = 82
        s._math = 78
        a = s.sumScore()
        print a

     继承和多态

    举例为:狗和猫都是动物

    class Animal(object):
        def run(self):
            print 'Animal is running...'
    
    class Dog(Animal):
        def run(self):
            print 'Dog is running...'
    
    class Cat(Animal):
        pass
    
    
    if __name__=='__main__':   
        d = Dog()
        c = Cat()
        d.run()
        c.run()

    判断一个变量是否是某个类型可以用isinstance()判断:

    isinstance(d,Dog)
    isinstance(c,Cat)
    

    开闭原则:

    对扩展开放:允许新增Animal子类;

    对修改封闭:不需要修改依赖Animal类型的run_twice()等函数。

    def run_kindof(animal):
        animal.run()
    
    a = Animal()
    d = Dog()
    c = Cat()
    run_kindof(a)
    run_kindof(d)
    run_kindof(c)
    

    type():获取对象类型(包括基本类型、函数、类)

        print type('1')
    <type 'str'>
        print type(1)
    <type 'int'>
        print type(a)
    <class '__main__.Animal'>
        print type(run_kindof)
    <type 'function'>
    

    dir():获取查询一个对象的所有属性和方法

    In [1]: dir('ABC')
       ...:
    Out[1]:
    ['__add__',
     '__class__',
     '__contains__',
     '__delattr__',
     '__doc__',
     '__eq__',
     '__format__',
     '__ge__',
     '__getattribute__',
     '__getitem__',
     '__getnewargs__',
     '__getslice__',
     '__gt__',
     '__hash__',
     '__init__',
     '__le__',
     '__len__',
     '__lt__',
     '__mod__',
     '__mul__',
     '__ne__',
     '__new__',
     '__reduce__',
     '__reduce_ex__',
     '__repr__',
     '__rmod__',
     '__rmul__',
     '__setattr__',
     '__sizeof__',
     '__str__',
     '__subclasshook__',
     '_formatter_field_name_split',
     '_formatter_parser',
     'capitalize',
     'center',
     'count',
     'decode',
     'encode',
     'endswith',
     'expandtabs',
     'find',
     'format',
     'index',
     'isalnum',
     'isalpha',
     'isdigit',
     'islower',
     'isspace',
     'istitle',
     'isupper',
     'join',
     'ljust',
     'lower',
     'lstrip',
     'partition',
     'replace',
     'rfind',
     'rindex',
     'rjust',
     'rpartition',
     'rsplit',
     'rstrip',
     'split',
     'splitlines',
     'startswith',
     'strip',
     'swapcase',
     'title',
     'translate',
     'upper',
     'zfill']
  • 相关阅读:
    iOS App Store审核上传应用预览视频
    mac 下常用命令(xcode常用命令,环境相关等)
    Xcode遇到的一些常见异常
    Tomcat的SSL配置keytool生成证书
    iOS Developer TODO
    Linix常用命令
    iOS&OSX系统初步了解
    Mac下安装MySQL及启动等常用命令
    Android WebView存在跨域访问漏洞(CNVD-2017-36682)介绍及解决
    HTML5 Audio/Video 标签,属性,方法,事件汇总 (转)
  • 原文地址:https://www.cnblogs.com/sker/p/5808312.html
Copyright © 2011-2022 走看看