zoukankan      html  css  js  c++  java
  • python 类


    判断是否为子类
    isinstance(对象,classinfo )
    如果object参数是classinfo 参数的实例,或者是(直接,间接或虚拟)子类的实例,则返回true 。如果object不是给定类型的对象,则该函数始终返回false。如果classinfo是类型对象的元组(或递归,其他此类元组),则如果object是任何类型的实例,则返回true 。如果classinfo不是类型和类型元组的类型或元组,TypeError则会引发异常。

    issubclass(class,classinfo )
    如果class是classinfo的子类(直接,间接或虚拟),则返回true 。类被认为是其自身的子类。classinfo可以是类对象的元组,在这种情况下,将检查classinfo中的每个条目。在任何其他情况下,都会引发异常。TypeError

    import math
    class calc():
    pi=3.1415926
    def circle_area(self,r):
    s=self.pi*math.pow(r,2)
    print(s)
    
    def calc(self):
    a, b, c = 2, 3, 4
    d = a + b + c
    print(d)
    c=calc()
    c.circle_area(10)
    class calcw(calc):
    def div(self,a,b):
    if b!=0:
    c=a/b
    else:
    print("被除数不能为零")
    return c
    print(issubclass(calcw,calc))
    c=calc()
    print(isinstance(c,calc))

    多重继承

    class xiaoxiaozhang(xiaozhang,xiaohong):
    def say():
    print('我要上学')

    继承

    class xiaoxiaozhang(xiaozhang):
    def say():
    print('我要上学')

    类变量 定义在类里面的变量 下面的pi就是类变量

    import math
    class calc():
    pi=3.1415926
    def circle_area(self,r):
    s=self.pi*math.pow(r,2)
    print(s)
    c=calc()
    c.circle_area(10)

    局部变量 定义在方法里面的变量 calc方法中的a、b、c就是局部变量

    import math
    class calc():
    pi=3.1415926
    def circle_area(self,r):
    s=self.pi*math.pow(r,2)
    print(s)
    
    def calc(self):
    a, b, c = 2, 3, 4
    d = a + b + c
    print(d)
    c=calc()
    c.circle_area(10)

    构造函数与析构函数
    __init__ 和__del__
    __init__是对变量的初始化,指当实例化一个对象(创建一个对象)的时候,第一个被自动调用的方法,未手动添加构造函数时,系统会默认提供一个无参的构造函数。
    __del__
    1、程序执行结束,会自动调用析构函数
    2、使用del 删除对象的时候,系统会自动调用析构函数
    3、如果没写析构函数,当符合析构函数调用的契机时,系统会自动调用父类的析构函数

    class Person():
    def run(self):
    print("run")
    
    def eat(self, food):
    print("eat "+food)
    
    def __init__(self, name, age, height, weight):
    self.name = name
    self.age = age
    self.height = height
    self.weight = weight
    
    def __del__(self):
    print("析构函数被调用了")
    
    per = Person("hanmeimei", 20, 170, 55)
    #释放对象
    del per
    #注意:对象释放后就不能再进行访问了
    
    #在函数里定义的对象,会在函数结束时自动释放,这样可以用来减少内存空间的浪费
    #其实就是作用域的问题
    def func():
    per2 = Person("aa", 1, 1, 1)
    
    func() 

    输出:
    析构函数被调用了
    析构函数被调用了
    私有变量、保护变量、全局变量
    变量前面在加一个下划线成为保护变量 作用域限于本类和子类
    变量前面加两个下划线叫私有变量 作用域限于本类
    各种推导式
    列表推导式

    a_list=[a for a in range(0,100,2) if a%2==0 ]

    字典推导式

    words='letter'
    a_dict={word:word.count(word) for word in words}

    集合推导式

    squared = {x**2 for x in [1, 1, 2]}

    生成器推导式

    ge=(a for a in range(1,100,2) if a%2!=0)
    print(ge)

    输出
    <generator object <genexpr> at 0x00000243D6DA6B48>
    先要输出内容可以进行遍历打印或者转成list

    ge=(a for a in range(1,100,2) if a%2!=0)
    print(ge)
    li=list(ge)
    print(li)
    本文为个人的实际操作经验之谈,转载、复制请注明出处,谢谢!
  • 相关阅读:
    WDF CSS 书写规范
    瞬间之美web界面设计如何让用户心动 读后感(一)
    ubuntu install node0.8.9 to the current user
    js单元测试_jsTestDriver
    window.print
    Java内省
    jQuery源代码学习jQuery对象扩展
    jdk集合结构
    【转载】程序员(1)
    【装载】JAVA虚拟机的内存模型
  • 原文地址:https://www.cnblogs.com/zhouxudong/p/9507138.html
Copyright © 2011-2022 走看看