• Python面向对象


    1. 对象

    1.1多态

    意味着可以对不同类的对象使用同样的操作

    1.2封装

    对外部世界隐藏对象的工作细节

    1.3继承

    以通用的类为基础建立专门的类对象

    2.类和类型

    2.1 创建类

    #创建类
    class mycalss:
        z = 10086
        
        #类的方法与普通的函数有一个特别的区别,它们必须有一个额外的第一个参数名称self
        #self可以随便叫什么,比如this,但是因为它代表对象自身,所以习惯叫做self
        def add(self,x,y):
            print(x+y)
    
    
        def getting(self):
            print("Hello")
        
        def info(self,name,age):
            self.name = name
            self.age = age
    
    obj = mycalss()
    obj.getting()
    obj.add(2,3)
    obj.info("Bob","18")
    print(obj.name,obj.age)
    
    输出:
    Hello
    5
    Bob 18

    2.2 私有化

    class mycalss:
        name = "Bob"
        
        #私有化方法
        def __inaccessible(self):
            print("现在__inaccessible从外部是无法访问的")
    
    
    obj = mycalss()
    #访问name
    print(obj.name)
    #可以修改name
    obj.name = "Jack"
    print(obj.name)
    
    obj.__inaccessible()
    
    输出:
    Bob
    Jack
    Traceback (most recent call last):
      File "c:UsersjmDesktopPythonSpaceUntitled-6.py", line 17, in <module>
        obj.__inaccessible()
    AttributeError: 'mycalss' object has no attribute '__inaccessible'
    class mycalss:
        name = "Bob"
        
        #私有化方法 现在__inaccessible从外部是无法访问的
        def __inaccessible(self):
            print("__inaccessible")
    
        def accessible(self):
            self.__inaccessible()#方法内部可以访问
    
    obj = mycalss()
    obj.accessible()
    
    输出:
    __inaccessible

    2.3类的属性 

      可以使用点(.)来访问对象的属性

      也可以使用以下函数的方式来访问属性:

    getattr(obj, name[, default]) : 访问对象的属性
    hasattr(obj,name) : 检查是否存在一个属性
    setattr(obj,name,value) : 设置一个属性。如果属性不存在,会创建一个新属性
    delattr(obj, name) : 删除属性
    setattr(obj,name,value) : 设置一个属性。如果属性不存在,会创建一个新属性

    2.4 继承

    class Filter:
        def init(self):
            self.blocked = []
    
        def filter(self,sequence):
            return [x for x in sequence if x not in self.blocked]
    
    class SPAMFilter(Filter):#SPAMFilter是Filter的子类(单继承)
        def init(self):#重写init方法
            self.blocked = ["SPAM"]
    
    f = Filter()
    f.init()
    print(f.filter([1,2,3]))
    
    s = SPAMFilter()
    s.init()
    print(s.filter(["SPAM","SPAM","eggs","bacon","SPAM"]))#过滤“SPAM”
    
    输出:
    [1, 2, 3]
    ['eggs', 'bacon']
    #多继承
    
    class class1(object):
        def getting(self):
            print("class1")
    
    class class2(object):
        def getting2(self):
            print("class2")    
    
    class class3(class1,class2):
        pass
    
    cl = class3()
    cl.getting()
    cl.getting2()
    
    输出:
    class1
    class2

    2.5构造函数

     class student(object):
         def __init__(self, name,age):         
            self.name = name
            self.age  = age
    
    s = student("Bob","18")
    print(s.name,s.age)
    
    输出:
    Bob 18
     
    c
  • 相关阅读:
    一步步介绍网页之--> intro.js的使用
    使用 intro.js 使项目介绍更加完美
    完整版中国省市县数据 存储到数据库中
    java 使用openoffice 转换文档,成.pdf,实现在线预览效果
    jsp 页面传多个id 到java后台的处理方式
    CCF推荐国际刊物会议列表2015
    百度ABCOP团队校招提前Offer等你来挑战
    高性能计算中心汇总
    Linux SSH 远程登录后显示-bash-4.1$的解决办法
    Coolpad Y1刷机方法
  • 原文地址:https://www.cnblogs.com/Tabby/p/7504501.html
Copyright © 2020-2023  润新知