• python基础笔记之面向对象


    # class Foo:
    # name="kevin"
    #
    # def __init__(self,puppy):
    # self.tomato= 'red'
    # self.dog = puppy
    # def bar(self,name):
    # print('you are %s' % name)
    # print('i am %s' % self.name)
    #
    # a = Foo('金毛') #这里传递的参数 是初始化 __init__
    # a.bar('tugou')
    # #上面的self指代类本身
    #
    # #上面的属性可以被串改,比如
    # a.dog="二哈"
    # print(a.dog)
    #如何防止串改数据 就是把变量 或者方法 变成私有 加上_
    # class Foo:
    # name="kevin"
    # def __init__(self,puppy):
    # self.__tomato= 'red'
    # self.__dog = puppy
    # def bar(self):
    # print(self.__dog)
    #
    # a = Foo("金毛")
    # a.bar() #金毛
    # a.__dog="二哈"
    # a.bar() # 金毛

    #面向对象的特点 : 封装,继承,多态
    #继承
    class Student:
    def __init__(self,name,age):
    self.name=name
    self.age =age

    def detail(self):
    print(self.name)
    print(self.age)

    class PrimaryStudent(Student): #这里的student就是继承的上面的student 类
    def lol(self):
    print("不服 solo!")

    class CollegeStudent(Student):
    def __init__(self,name,age,gf):
    # 于是父级init会被直接overwrite
    self.name = name
    self.age = age
    self.gf = gf

    def gf_detail(self):
    print(self.gf)

    # a = PrimaryStudent('kevin',44)
    # a.lol()
    # a.detail()

    # b = CollegeStudent('kevin',32,'lara')
    # b.detail()
    # b.gf_detail()

    ##如何获得对象的信息 用type()
    # print(type(None))

    ##isinstance()可以判断一个对象是否是某种类型(包括继承关系)
    # class A:
    # pass
    # class B(A):
    # pass
    # class C(B):
    # pass
    # y = C()

    # print(isinstance(y,B)) #判断是否和类C有继承关系

    #使用dir()方法获得一个对象的所有属性和方法 ,可以使用dir()函数,它返回一个包含字符串的list
    # print(dir(Student))

    #如何重写内置的规则 比如如何重置计算长度的内置方法
    # class yObjest:
    # # test = 1
    # def __len__(self):
    # return 1234
    #
    # a = yObjest()
    # print(a.__len__())

    #获取内置对象的属性 或者是判断内置对象 以及设置对象
    # print(hasattr(a,'x')) #判断对象是否有x属性
    # print(setattr(a,'x',1))#给对象设置一个属性值
    # print(hasattr(a,'x'))#再次判断对象 是否有x属性
    # print(getattr(a,'x'))#结果有了 查看x属性
    # print(getattr(a,'x',404))#结果有了 查看x属性 如果没有则返回404
    # print(yObjest.test)

    #如何直接删除一个类的属性
    # class yObjest:
    # test = 1
    # def __len__(self):
    # return 1234
    #
    # a = yObjest()
    # a.test=2
    # print(a.test)
    # del a.test
    # print(a.test)

    #模块和包 : python的程序由包(package) ,模块(module)和函数组成,包是由一系列模块组成的集合,模块是处理某一类问题的函数和类的集合
    # 包就是完成特定任何的工具箱,python 提供了许多有用的工具包,入2字符串处理,图形用户接口,web应用,图形图像处理等。这些自带的工具包和模块安装在python的安装目录下lib子目录中
    # import sys
    # print(sys.path)

    #如果发现自己引用的包不存在的时候,怎么办 先调用上面的sys.path方法,如果发现系统引用的位置不包括我们安装的包 用 sys.path.append('包的路径')添加包的路径
    # print(sys.path.append('包的路径'))

    #模块的导入方法
    #第一种就是上面的import方式
    #第二种用form-import语句实现部分或者全部导入
    # from sys import path #直接导入path方法
    # from sys import path as getpath #直接导入path方法 并重命名
    # from sys import * #直接导入所有
    # print(path)

    #安装包的方法 pip install
  • 相关阅读:
    js规范
    JS多个函数多个参数如何动态调用,apply的灵活应用
    我是插件狂人,jDuang,jValidator,jModal,jGallery
    Button在IE6、7下的自适应宽度问题解决方法
    100个直接可以拿来用的JavaScript实用功能代码片段
    docker
    jsonp实现post跨域请求
    setInterval倒计时10s
    CI框架源码解读(1)-入口文件index.php
    为什么开始源码阅读
  • 原文地址:https://www.cnblogs.com/spicy/p/8184751.html
Copyright © 2020-2023  润新知