抓狐狸python_python 类

判断是否为子类

isinstance(对象,classinfo )

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

issubclass(class,classinfo )

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

importmathclasscalc():

pi=3.1415926

defcircle_area(self,r):

s=self.pi*math.pow(r,2)print(s)defcalc(self):

a, b, c= 2, 3, 4d= a + b +cprint(d)

c=calc()

c.circle_area(10)classcalcw(calc):defdiv(self,a,b):if b!=0:

c=a/belse:print("被除数不能为零")returncprint(issubclass(calcw,calc))

c=calc()print(isinstance(c,calc))

多重继承

classxiaoxiaozhang(xiaozhang,xiaohong):defsay():print('我要上学')

继承

classxiaoxiaozhang(xiaozhang):defsay():print('我要上学')

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

importmathclasscalc():

pi=3.1415926

defcircle_area(self,r):

s=self.pi*math.pow(r,2)print(s)

c=calc()

c.circle_area(10)

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

importmathclasscalc():

pi=3.1415926

defcircle_area(self,r):

s=self.pi*math.pow(r,2)print(s)defcalc(self):

a, b, c= 2, 3, 4d= a + b +cprint(d)

c=calc()

c.circle_area(10)

构造函数与析构函数

__init__ 和__del__

__init__是对变量的初始化,指当实例化一个对象(创建一个对象)的时候,第一个被自动调用的方法,未手动添加构造函数时,系统会默认提供一个无参的构造函数。

__del__

1、程序执行结束,会自动调用析构函数

2、使用del 删除对象的时候,系统会自动调用析构函数

3、如果没写析构函数,当符合析构函数调用的契机时,系统会自动调用父类的析构函数

classPerson():defrun(self):print("run")defeat(self, food):print("eat"+food)def __init__(self, name, age, height, weight):

self.name=name

self.age=age

self.height=height

self.weight=weightdef __del__(self):print("析构函数被调用了")

per= Person("hanmeimei", 20, 170, 55)#释放对象

delper#注意:对象释放后就不能再进行访问了

#在函数里定义的对象,会在函数结束时自动释放,这样可以用来减少内存空间的浪费#其实就是作用域的问题

deffunc():

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)

输出

at 0x00000243D6DA6B48>

先要输出内容可以进行遍历打印或者转成list

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

li=list(ge)print(li)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值