- 博客(35)
- 收藏
- 关注
原创 Variable Object(变量对象)
上一篇简单介绍了执行上下文,现在来讲讲与执行上下文密切相关的Variable Object;变量对象的定义:变量对象是一个特殊的对象,并且与执行上下文息息相关,VO(变量对象)里面会存有下列内容:variables(var,variableDeclaration);function declarations(FD)function formal parameters以上这些内容都会保...
2019-06-10 18:18:19
851
原创 Execution Context(执行上下文)
在这一部分我们将会提及js中的一些执行上下文(execution context),还有与执行上下文中相关联的可执行代码(executable code).Execution Context是通过ECMA 262 规范用于Exectuable code的类型和区分的抽象概念。该标准并没有从技术角度明确定义Execution Context的种类和结构,该问题需要js引擎去实现。从逻辑上讲,执行...
2019-06-09 17:57:51
3061
原创 css中元素的position属性详解
css中元素的position属性position属性有五个可以设置的值,分别是static,absolute,relative,fixed,inheritstatic:默认值,无定位;元素仍然存在于标准文档流中absolute:绝对定位,元素相对于它的第一个定位父级元素进行定位。元素的位置可以通过top,right,bottom,left属性进行设置;使用了绝对定位的元素会生成一个块级框,...
2019-05-01 19:36:23
322
原创 js中的原型、原型链和constructor属性
js中的原型和constructor属性每一个函数都有一个prototype属性,该属性的内部有一个指针指向一个对象,所指向的对象称为原型对象。注意:不管是普通函数还是构造函数都有一个prototype属性用构造函数创建一个实例对象,该对象内部也有一个指针,指向原型对象,内部指针为[[prototype]],对外是不可见的。而原型对象内部也有一个指针,指向它的原型,这就构成了一条原型链,所有...
2019-04-30 19:34:13
1120
原创 #魔术方法(三)——运算符魔术方法(普通算数操作符)
#魔术方法(三)——运算符魔术方法(普通算数操作符)#普通算数操作符:#1.__add__(self,other)魔术方法:在两个对象相加的时候执行的方法。#2.__sub__(self,other)魔术方法:在两个对象相减的时候执行的方法。#3.__mul__(self,other)魔术方法:在两个对象相乘的时候执行的方法。#4.__floordiv__(self,other)魔术方...
2018-10-31 17:11:59
299
原创 魔术方法(三)——运算符魔术方法(一元操作符函数)
#魔术方法(三)——运算符魔术方法(一元操作符函数)#一元操作符函数:#1.__pos__(self)魔术方法:在这个对象前面使用正号的时候执行的方法。#2.__neg__(self)魔术方法:在这个对象前面使用负号的时候执行的方法。#3.__abs__(self)魔术方法:在这个对象上使用abs函数的时候执行的方法。#4.__invert__(self)魔术方法:在这个对象前面使用~...
2018-10-31 16:43:57
143
原创 Python中的魔术方法(二)——用于比较的魔术方法
#魔术方法(二)——用于比较的魔术方法#有时候我们需要比较两个对象。比如哪个对象大,哪个对象小。如果我们#不告诉python如何比较,那么Python是不知道如何进行比较的。这时候#我们需要使用一些魔术方法来达到我们的需求。#__eq__(self,other)魔术方法:#在使用==比较运算符比较两个对象是否相等的时候会调用这个方法。#如果是相等,那么应该返回True,否则返回F...
2018-10-31 16:17:43
672
原创 python中的__repr__魔术方法
如果将一个对象创建完成后,放到一个列表中,然后再打印这个列表,那么会打印这个列表中所有的对象,这时候会调用__repr__魔术方法,示例代码如下:若不使用魔术方法将会出现以下的形式:class Person(object): def __init__(self,name): self.name = namep1=Person('lb')p2=Person('fjq')a=[p1,...
2018-10-31 15:19:25
1562
原创 Python中的魔术方法(一)
#常规魔术方法:#__init__魔术方法#__del__魔术方法:对象即将被释放的时候,会调用这个方法。#如果这个对象产生了循环引用,并且使用了__del__方法,那么这个对象将#得不到释放,从而产生内存泄漏。#__new__魔术方法:在对象创建之前就会被执行,用于创建对象的。#__class__魔术属性:用来返回这个对象所属的类。如果一个类调用#这个属性,就会返回这个类的元类...
2018-10-28 16:32:56
194
原创 python中动态添加属性和方法
#动态添加属性:#就是这个属性不是在类定义的时候添加的,而是在程序运行过程中添加的,动态添加属性有两种方法,#第一个是直接通过对象名.属性名,第二个是通过setattr添加:#1.对象.属性class Person(object): def __init__(self,name): self.name = namep=Person('fjq')p.age=18print...
2018-10-27 17:06:59
402
原创 实现一个可以计算一个函数用时多久的装饰器
from functools import wrapsfrom time import timedef calculator(func): # @wraps def wrapper(*args,**kwargs): start=time() func(*args,**kwargs) end=time() c=end-start print('该函数的运行时间为%f'...
2018-10-27 16:10:30
123
原创 动态属性添加方法
#动态添加属性:#1.对象.属性# class Person(object):# def __init__(self,name):# self.name = name# p=Person('fjq')# # p.age=18# # print(p.age)# if hasatter(p,'name'):# print(True)# else:# print(...
2018-10-27 09:56:40
189
原创 Python装饰器加上闭包
#装饰器:#装饰器利用了函数也可以作为参数传递和闭包的特性,#可以让我们的函数在执行之前或者执行之后方便的添加一些代码,#使得代码的维护更加简单#以下面在网站开发中,经常会碰到的登录页面问题为例,如果每次#都要在函数中判断用户是否登录再执行接下来的操作,会使得代码#冗余,麻烦,并且维护困难#1.user={"is_login":True}def edit_user(): ...
2018-10-26 21:50:41
181
原创 Python中的闭包基础知识
#闭包:#如果在一个函数中,又定义了另外一个函数,并且这个函数使用了外面这#个函数的变量,且外面这个函数返回了里面这个函数,我们称之为闭包def person(name): def student(): print('hello,my name is %s'%name) return student#此时我们调用person('fjq')相当于返回了student#那么调用p...
2018-10-26 16:25:48
127
原创 Python中用闭包实现y=x+1和y=2*x+1的计算值
#用闭包实现y=x+1和y=2*x+1def calculator(option): if option ==1: def add(x): y = x+1 print(y) return add else: def add_(x):
2018-10-26 10:28:03
3218
原创 Python中的可迭代对象和迭代器
#isinstance() 函数来判断一个对象是否是一个已知的类型#1.Iterable(可迭代的,用来判断是否是可迭代的对象)#2.Iterator(迭代器,用来判断是否是迭代器)#可迭代的对象:#可以直接使用for循环遍历的对象,成为可迭代的对象,#常见的可迭代的对象有:list、tuple、dict、set、str以及生成器。#更加专业的判断一个对象是否是可迭代的对象是:这个对...
2018-10-25 16:50:20
320
原创 python中的__new__方法和单例设计模式
#1. __new__方法# 创建对象(__new__) =》 初始化对象(__init__)class Car(object): #__new__方法是类方法 def __new__(cls,*args,**kwargs): print('new method') # 一定要切记,必须要在new方法后面返回当前这个类的对象 #因为__new__方法是来创建对象的 ...
2018-10-24 16:32:08
117
原创 python中的类方法和静态方法
#类方法和静态方法:class Person(object): country='usa' def eat(self): print("hello world") #此方法将以下方法变成类方法,第一个参数必须是cls, #代表的是当前这个类 @classmethod def greet(cls): cls.country='china' print('nihao...
2018-10-24 08:53:41
133
1
原创 类属性和实例属性
#类属性和实例属性class Student(object): country='usa' def __init__(self,name,age): self.name=name self.age=age def greet(self): print("my name is %s,my age is %d"%(self.name,self.age))s1=Stu...
2018-10-24 08:25:24
115
原创 python中的多态
#多态:#多态的意思是,不同的对象,都实现了同一个接口,#因此我们可以不管这个对象是什么,直接调用这个方法就可以了。class Hero(object): """docstring for Hero""" def __init__(self): pass def stroke(self): passclass Chengyaojin(object): def str..
2018-10-23 21:09:43
801
原创 python中子类不能继承父类的私有属性和方法
#在子类中是不能继承私有属性和方法的,#但是私有属性和方法可以在同一个类中被调用class Person(object): def __init__(self,name): self.__name = name self._age = 12 def greet(self): print('hello,my name is %s' % self.__name) def...
2018-10-23 20:44:26
11723
4
原创 python中面向对象的继承
#继承:继承可以使用其他类当作自己的父类,#那么父类中的方法和公有属性都可以被子类使用。#继承的好处是可以让子类节省代码,实现更多的功能。class Person(object): def __init__(self,name,age): self.name = name self.age = age def eat(self): print('我在吃法') def ...
2018-10-23 16:44:15
108
原创 用python中的面向对象方法来组装一台电脑
#CPU/RAM/Diskclass CPU(object): def __init__(self,brand,core,interface): self.brand=brand self.core=core self.interface=interfaceclass RAM(object): def __init__(self,brand,size): ...
2018-10-19 17:33:44
462
原创 用python实现宠物管理系统
PETS = [] #全局变量def add_pet(): ID = input("请输入宠物编号:") name = input("请输入宠物名称:") category = input("请输入宠物种类:") price = input("请输入宠物价格:") pet = {'id':ID,'name':name,'category':category,'price':pric...
2018-10-18 20:18:34
5227
2
原创 python函数基础
#1.局部变量def greet(): username = 'luobin' print("hello %s"%(username))greet()#2.全局变量,需要顶格写username = 'luobin'def greet(): print("hello %s"%(username))greet()print(username)#3.global关键字:添加...
2018-10-18 09:20:09
139
原创 字典基础
#字典基础#创建字典:1.1使用{}的方式 1.2使用dict函数# person = {'username':'luobin','age':23}# person = dict(username='fjq',age=22)#字典基本操作:#1.len(d):返回字典的键值对的长度。# person = {'username':'luobin','age':23}# print...
2018-10-17 21:41:16
221
原创 python中的元组基础
#元组基础:元组的使用与列表相似,不同之处在于元组是不可修改的,#元组使用圆括号,而列表使用中括号#元组的定义#1.用逗号 2.用圆括号 3.使用tuple函数#4.定义只有一个元素的元组:# atuple = 12,# print(atuple)# print(type(atuple))#元组常用操作:1.下标操作 2.切片操作 3.解组操作#3.解组操作:# atup...
2018-10-17 17:02:21
99
原创 python中列表的一些常用操作
#列表的一些常用操作#1.insert方法:在列表中插入某些数据# a = [1,2,4,6]# a.insert(0,5)# print(a)#2.pop方法:弹出列表的最后一个元素,并且返回该元素的值# a = ['luo','bin',1,3,8]# b = a.pop()# print(b)# print(a)#3.remove方法:移除列表中第一个匹配匹配的元素,...
2018-10-17 16:32:41
161
原创 函数式编程
使用lambda函数进行函数式编程#1.filter函数可以用以过滤a = [1,2,3,4,5,6,7,8,9]result = filter(lambda x:True if x >3 else False,a)for x in result: print(x)#2.map函数用于扩大,例如扩大10倍a = [1,2,3,4,5,6,7,8,9]result = map...
2018-10-16 16:56:13
81
原创 实现一个计算体脂率的程序
#eval()函数用来将字符串转换成python语句sex = input(‘请输入性别(男或女):’)waistline = eval(input(‘请输入腰围(单位是cm):’))weight = eval(input(‘请输入体重(kg):’))if sex == ‘女’:body_rate = (waistline0.74 - (weight0.082+34.89))/weigh...
2018-10-14 20:12:01
9902
原创 用for循环实现九九乘法表
#用for循环来实现久久乘法表for row in range(1,10): for column in range(1,row+1): #%s表示占位符,end=' '适用于再输出后面加两个空格 print('%s*%s=%s'%(column,row,column*row),end=' ') print('') #用来进行换行的...
2018-10-14 19:31:53
4547
原创 打印九九乘法表
#打印九九乘法表,每行每行打印row = 1column = 1#第一个while循环,用来控制行数while row <= 9:#第二个while循环,用来控制列的#%s为占位符,end=’ ‘表示输出末尾添加空格while column <= row:print("%s*%s=%s"%(column,row,column*row),end=’ ')column =...
2018-10-14 11:08:57
124
原创 用画一个笑脸
这是一个完全利用Python的turtle库所画出来的图像,由于该图像较为规则,代码较为简单。*``#xiaolian.pyimport turtle as t#脸t.setup(960,960,0,0)t.pencolor(“orange”)t.pensize(“25”)t.penup()t.goto(-300,0)t.pendown()t.left(90)t.fill...
2018-09-21 09:14:43
2888
原创 猜数游戏
在程序中预设一个0-9的数字,让用户通过键盘输入所猜的数,如果大于预设的数,显示“遗憾,太大了!”;小于预设的数,显示“遗憾,太小了!”;如此循环,直至猜中该数,显示“预测N次,你猜中了!”其中N是用户输入数字的次数。
2018-09-19 18:08:00
932
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人