面向对象的进阶2
一、静态调用和类的调用1、如果类中需要非该类成员存在,则可以使用静态调用的方法@staticmethod
例题:输入四条边判断它是否是一个正方形,如果是计算面积
复制代码
class Zfx (object):
def init(self,a,b,c,d):
self.a = a
self.b = b
self.c = c
self.d = d
@staticmethod
def is_valid(a,b,c,d):
for i in [b,c,d]:
if i != a:
return False
else:
return True
def area(self):
if res == True:
area_=self.a*self.b
return area_
zfx=Zfx(8,8,8,8)
res = zfx.is_valid(8,8,8,8)
if res==True:
print(zfx.area())输出:64
复制代码
2、@classmethod:获取自身类(cls)中的属性,并且可以更改.
classmethod 修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等例题:
复制代码
class A(object):
def init(self):
self.jxh = 100
@classmethod
def a(cls):
return cls()
c = A.a()
print (c.jxh)输出:100
复制代码
3、from time import time,localtime,sleep
print(time())输出:1565255554.80476
输出的是时间戳,是从1970年1月1号00.00.00秒到现在2019/8/817:18:25秒整理过的秒速二、继承
复制代码
class A(object):
def init(self):
self.a=111
def A1(self):
print(‘A1’)
#在类名中写上继承的类
class B(A):
def init(self):
A. init(self)
self.a=200
def B1(self):
print(‘B1’)
c=B()
print(c.a)
c.A1()输出:100
A1
复制代码
例题1:创建一个父类和一个子类父类计算两个数字的和为SUM_
子类打印这个SUM_复制代码
class A(object): #A父类
def init(self):
self.a=10
self.a1=20
def sum_(self):
SUM_=self.a+self.a1
return SUM_
class B(A): #B继承A
def init(self):
A. init(self) #继承A中所有
def B1(self):
res = self.sum_()
print(res)
b=B()
b.B1()输出:30
复制代码
三、1、列表生成式----[ ]
a = (x for x in range(100000000000) if x % 2== 0)
for i in range(100):
print(next(a))
a = [x for x in range(100000000000) if x % 2== 0]
优点: 计算速度快,因为一次性已经全部加载到内存中了,适合数据量不是太大的情况10000- 2000-
缺点: 占用内存2、列表生成器----( )
a = (x for x in range(100000000000) if x % 2== 0)
优点: 节约内存空间
缺点: 计算速度慢,因为要生成.四、函数闭包
所谓的函数闭包本质是函数的嵌套和高阶函数。我们来看看要实现函数闭包要满足什么条件(缺一不可):
1)必须嵌套函数
2)内嵌函数必须引用一个定义在闭合范围内(外部函数里)的变量——内部函数引用外部变量
3)外部函数必须返回内嵌函数——必须返回那个内部函数
闭包的作用:可以保持程序上一次运行后的状态然后继续执行。
实例如下:按 Ctrl+C 复制代码
def foo( ):
def bar( ):
return ‘hello’
return bar( )
a = foo( )
print (a)输出:hello
按 Ctrl+C 复制代码五、装饰器
实例1:创建一个装饰器,一个函数(两个参数)
用装饰器处理两个参数和,并打印
复制代码
def deco(func):
def warp(a1,a2):
print(‘a1+a2’,a1+a2)
return func(a1,a2)
return warp
@deco
def SUM(a1,a2):
print(a1,a2)
SUM(100,100)输出 a1+a2 200
复制代码实例2:
按 Ctrl+C 复制代码
def jxh(func):
def warp(n1,n2,n3):
num = n1 + n2
return func(0,num,n3)
return warp
#装饰器将前两个数字求和,函数本身第三个参数乘上这个和
@jxh
def SUM(num1,num2,num3):
print(num1,num2,num3)
print(num2 * num3)SUM(10,2,3)
输出:0 12 3
按 Ctrl+C 复制代码
用python写正方形的周长 用python求正方形的面积
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
如何用PYTHON代码编辑gif,正方形变圆形
使用python 将正方形的图标gif,转换成圆形gif.
Image python gif Pillow -
正方形面积Java 正方形面积的面积公式
三角形的面积=底a×高h÷2 公式 正方形的面积=边长a×边长a 公式 长方形的面积=长a×宽b
正方形面积Java 数学公式 计算公式 公式 -
Android框架 TMG主任
xUtils简介xUtils 包含了很多实用的android工具。xUtils 源于Afinal框架,对Afinal进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持,拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响...xUitls最低兼容android 2.2 (api level 8)目前xUtils主要有四大模块: DbUtils模块:android中的o
Android框架 TMG主任 xUtils ViewUtils HttpUtils BitmapUtils