首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Python 入门第十五讲】OOP(面向对象)思想

如果使用列表,第一个元素可能是狗品种,第二个元素可以表示年龄。假设有 100 只不同狗,那么你怎么知道哪个元素应该是哪个?如果想为这些狗添加其他属性怎么办?这种缺乏组织性,正是对类需求。...Python 决定以一种使方法所属实例自动传递不是自动接收方式执行方法:methods 第一个参数是调用该方法实例。...当我们调用该方法,我们不会为此参数提供值,Python 提供了 如果我们有一个不带参数方法,那么我们仍然必须有一个参数。 这类似于 C++ 中此指针和 Java 中此引用。...例如,我们需要确定给定种类鸟类是否飞行,使用多态性,我们可以使用单个函数来做到这一点。 Python 中多态性 此代码演示了 Python 类中继承和方法重写概念。...Printing Objects 打印对象我们提供了有关我们正在处理对象信息。

19820

JavaScript 进阶问题列表

这意味着当我们调用 perimeter ,this 不是指向 shape 对象,而是周围作用域(在例子中是 window)。...虽然看着像是一个 number,但它实际上并不是一个真实 number:它有一堆额外功能并且它是一个对象当我们使用 == 操作符只会检查两者是否拥有相同值。...因为它们值都是 3,因此返回 true。 然后,当我们使用 === 操作符,两者值以及类型都应该是相同。new Number() 是一个对象不是 number,因此返回 false。...function 不是种类型,函数是对象类型是object。 ---- 35. 下面哪些值是 falsy?...所以说,birthYear是值传递,因为他是个字符串不是对象当我们对参数进行值传递,会创建一份该值 复制 。

1.3K10
您找到你想要的搜索结果了吗?
是的
没有找到

送你43道JavaScript面试题

虽然看起来像一个数字,但它并不是一个真正数字:它有一堆额外功能,是一个对象当我们使用==运算符只检查它是否具有相同值。他们都有3值,所以返回true。...译者注:==会引发隐式类型转换,右侧对象类型会自动拆箱Number类型。 然而,当我们使用===操作符,类型和值都需要相等,new Number()不是一个数字,是一个对象类型。...然而却最后打印。 这是因为在浏览器中,我们不只有运行时引擎,我们还有一个叫做WebAPI东西。WebAPI我们提供了setTimeout函数,例如DOM。...当我们传递参数,这与变量x不同。这个变量x是属于catch作用域。 之后,我们将这个块级作用域变量设置1,并设置变量y值。现在,我们打印块级作用域变量x,等于1。...在catch块之外,x仍然是undefined,y是2。当我们想在catch块之外console.log(x)返回undefined,y返回2。 ---- 39.

1.4K10

送你43道JavaScript面试题

虽然看起来像一个数字,但它并不是一个真正数字:它有一堆额外功能,是一个对象当我们使用==运算符只检查它是否具有相同值。 他们都有3值,所以返回true。...译者注:==会引发隐式类型转换,右侧对象类型会自动拆箱Number类型。 然而,当我们使用===操作符,类型和值都需要相等,new Number()不是一个数字,是一个对象类型。...然而却最后打印。 这是因为在浏览器中,我们不只有运行时引擎,我们还有一个叫做WebAPI东西。WebAPI我们提供了setTimeout函数,例如DOM。...当我们传递参数,这与变量x不同。这个变量x是属于catch作用域。 之后,我们将这个块级作用域变量设置1,并设置变量y值。 现在,我们打印块级作用域变量x,等于1。...在catch块之外,x仍然是undefined,y是2。 当我们想在catch块之外console.log(x)返回undefined,y返回2。 ---- 39.

1.5K20

送你43道JavaScript面试题

虽然看起来像一个数字,但它并不是一个真正数字:它有一堆额外功能,是一个对象当我们使用==运算符只检查它是否具有相同值。 他们都有3值,所以返回true。...译者注:==会引发隐式类型转换,右侧对象类型会自动拆箱Number类型。 然而,当我们使用===操作符,类型和值都需要相等,new Number()不是一个数字,是一个对象类型。...然而却最后打印。 这是因为在浏览器中,我们不只有运行时引擎,我们还有一个叫做WebAPI东西。WebAPI我们提供了setTimeout函数,例如DOM。...当我们传递参数,这与变量x不同。这个变量x是属于catch作用域。 之后,我们将这个块级作用域变量设置1,并设置变量y值。 现在,我们打印块级作用域变量x,等于1。...在catch块之外,x仍然是undefined,y是2。 当我们想在catch块之外console.log(x)返回undefined,y返回2。 ---- 39.

1.6K30

43道JavaScript面试题

虽然看起来像一个数字,但它并不是一个真正数字:它有一堆额外功能,是一个对象当我们使用==运算符只检查它是否具有相同值。 他们都有3值,所以返回true。...译者注:==会引发隐式类型转换,右侧对象类型会自动拆箱Number类型。 然而,当我们使用===操作符,类型和值都需要相等,new Number()不是一个数字,是一个对象类型。...然而却最后打印。 这是因为在浏览器中,我们不只有运行时引擎,我们还有一个叫做WebAPI东西。WebAPI我们提供了setTimeout函数,例如DOM。...当我们传递参数,这与变量x不同。这个变量x是属于catch作用域。 之后,我们将这个块级作用域变量设置1,并设置变量y值。 现在,我们打印块级作用域变量x,等于1。...在catch块之外,x仍然是undefined,y是2。 当我们想在catch块之外console.log(x)返回undefined,y返回2。 ---- 39.

1.8K20

C#中委托和事件 - Part.1

如果上面这句话比较绕口,翻译成这样:string 定义了name参数所能代表种类,也就是name参数类型。...现在假设热水器由三部分组成:热水器、警报器、显示器,它们来自于不同厂商并进行了组装。那么,应该是热水器仅仅负责烧水,它不能发出警报也不能显示水温;在水烧开由警报器发出警报、显示显示提示和水温。...在本范例中,热水器就是一个监视对象包含其他对象所感兴趣内容,就是temprature字段,当这个字段值快到100,会不断把数据发给监视对象。...在本范例中,Observer有警报器和显示器,它们采取行动分别是发出警报和显示水温。 在本例中,事情发生顺序应该是这样: 警报器和显示器告诉热水器,它对温度比较感兴趣(注册)。...类似这样例子是很多,GOF对进行了抽象,称为Observer设计模式:Observer设计模式是为了定义对象一种一对多依赖关系,以便于当一个对象状态改变,其他依赖于对象会被自动告知并更新

1.1K40

C# 中委托和事件

NOTE:如果上面这句话比较绕口,翻译成这样:string 定义了name参数所能代表种类,也就是name参数类型。...现在假设热水器由三部分组成:热水器、警报器、显示器,它们来自于不同厂商并进行了组装。那么,应该是热水器仅仅负责烧水,它不能发出警报也不能显示水温;在水烧开由警报器发出警报、显示显示提示和水温。...在本范例中,热水器就是一个监视对象包含其他对象所感兴趣内容,就是temprature字段,当这个字段值快到100,会不断把数据发给监视对象。...在本范例中,Observer有警报器和显示器,它们采取行动分别是发出警报和显示水温。 在本例中,事情发生顺序应该是这样: 警报器和显示器告诉热水器,它对温度比较感兴趣(注册)。...类似这样例子是很多,GOF对进行了抽象,称为Observer设计模式:Observer设计模式是为了定义对象一种一对多依赖关系,以便于当一个对象状态改变,其他依赖于对象会被自动告知并更新

86920

Swift入门:多态性与类型转换

当我们创建一个保存Album数组,实际上是用Album子类来填充:LiveAlbum和StudioAlbum。他们进入数组很好,因为他们继承了Album类,但他们从来没有失去原来类。...不幸是,如果Swift不知道你知道什么,它就不会构建你代码。所以,有一个解决方案,叫做类型转换:将一种类对象转换成另一种类型。...: 认为这个转换可能是真的,但可能会失败; a! : 知道这个转换是真的,如果错了,很高兴因为应用程序会崩溃 ???。 注意:当我们说“转换”时候,不是对象真的被转换了。...相反,只是转换Swift对待对象方式——你告诉Swift认为是A型对象实际上是E型。 问号和感叹号应该给你一个提示,告诉你发生了什么,因为这和可选区域非常相似。...强制转换是指当你确信一种类对象可以被当作另一种类型来处理,但是如果你错了,你程序就会崩溃。强制转换不需要返回可选值,因为您是说转换肯定会起作用——如果您错了,这意味着您编写代码是错误

92910

c++基础之变量和基本类型

,一般库以lib开头但是在指定名称不用加lib前缀,例如要链接libmath.o 可以写成-lmath -L 指定库所在目录 -Wall 打印所有警告,一般编译打开这个 -E 仅做预处理,不进行编译...char或者bool类型 如果需要使用一个不大整数,必须指定是signed char 还是unsigned char 执行浮点数运算使用double 类型转化 当在程序某处我们使用了一种类型,实际对象应该取另一种类...M "\x6D" 一般来讲我们很难通过字面值常量知道到底应该是具体种类型,例如 15既可以表示short、int、long、也是是double等等类型。...例如: const int i = 10; //是常量表达式,字面值在编译就能确定值,const保证了后续变量值不会修改 int i = 10; //不是常量表达式,字面值在编译就能确定,但是这里定义是变量...使用引用对象来给auto赋值,auto会被推断被引用对象类型 auto一般会忽略顶层const,底层const则会保留下来。

1.5K30

Java面试系列9

MissingResourceException 是说没找到你资源文件: mResource 路径应该是从\WEB-INF\classes目录下开始: \WEB-INF\classes\...NullPointerException 空指针引用异常 当应用程序试图在需要对象地方使用 null ,抛出该异常。这种情况包括: 调用 null 对象实例方法。...访问或修改 null 对象字段。 如果一个数组null,试图用属性length获得其长度。 如果一个数组null,试图访问或修改其中某个元素。...在需要抛出一个异常对象对象 null 。...应用程序将会抛出NullPointerException类实例,表明其他对 null 对象非法使用 OverlappingFileLockException 试图获取某个文件区域上锁定,该区域与同一

2K40

简单工厂模式

简单工厂模式UML图: 简单工厂模式中包括角色及其对应职责例如以下: 工厂角色(Creator):这是简单工厂模式核心,由负责创建全部内部逻辑。...详细来说,把产品看着是一系列集合,这些类是由某个抽象类或者接口派生出来一个对象树。工厂类用来产生一个合适对象来满足客户要求。...要一份麦香鸡 要一份薯条 简单工厂模式优缺点分析: 长处:工厂类是整个模式关键所在。包括必要推断逻辑,可以依据外界给定信息,决定到底应该创建哪个详细类对象。...client要使用使用数据,仅仅须要和工厂进行交互就可以,这就导致操作步骤得到极大简化,操作步骤依照顺序依次:注冊并载入数据库驱动,一般使用Class.forName();创建与数据库链接Connection...对象;创建SQL语句对象preparedStatement(sql);提交SQL语句,依据实际情况使用executeQuery()或者executeUpdate();显示对应结果;关闭数据库。

23320

经典设计模式(三):抽象工厂模式

抽象工厂模式 本来不想写这篇文章应该是不想写工厂模式,因为基本大家都会,不过今天看到一个老铁博客,https://www.yuxuan66.com/16 关于抽象模式实现,写得不错,看了几遍之后...使用 这里创建一个抽象工厂,中国工厂和美国工厂继承。再创建一个饮料接口,实现各种饮料种类。...简单工厂经常和单例模式一起使用,例如用简单工厂创建缓存对象(文件缓存),某天需要改用redis缓存,修改工厂即可。 抽象工厂常用于创建一整个产品族,不是单一产品。...通过选择不同工厂来达到目的,其优势在于可以通过替换工厂快速替换整个产品族。例如上面的例子美国工厂生产美国drink,中国工厂生产中国drink。...优点 客户端与具体要创建产品解耦,扩展性和灵活性高 缺点 增加要创建对象,需要增加代码较多,会使系统变得较为复杂 源码 https://github.com/java-aodeng/hope

29610

金九银十: 50 个JS 必须懂面试题为你助力

允许你从内部函数访问外部函数作用域。 在JS中,每次创建函数都会创建闭包。 要使用闭包,只需在另一个函数内定义一个函数并暴露。 问题16:列出一些内置方法及其返回值。...问题26:什么是类型化语言 类型化语言中,值与值关联,不是与变量关联,它有两种类型: 动态:在这种情况下,变量可以包含多种类型,如在JS中,变量可以取number, string 类型。...null是引用数据类型,是对象,表示空对象 undefined是从null派生出来 所以undefined==null true 问题 30:undeclared 和 undefined 区别?...当我妈妈叫沙雕时候,虽然名字叫小智,但这并不是就突然就克隆了一个自己:仍然是,只是可以用不同名字来称呼而已。...prompt() 方法显示一个对话框,提示访问者输入。 如果您希望用户在输入页面之前输入值,则通常会使用提示框。 弹出提示框,用户必须在输入输入值后单击“确定”或“取消”才能继续。

6.5K31

Js检测数据类型

,000开头代表对象,null表示全零,所以对象类型被误判为object.虽然现在内部类型判断代码已经改变了,但是对于这个Bug缺一直流传下来了 对于function会返回function null...拥有自己Null类型,引用数据类型中,例如数组、日期、正则、等都有自己类型,但是typeof返回了其原型链顶端Objec类型,不能算错误,但是不准确,不是我们想要值 instanceof instanceof...,也可以理解A是否是B实例。...数组原型会指向Array.prototype,间接指向了Object.prototype,所以[]也属于对象返回正确,所以说instanceof判断是两个对象是否属于实例关系,不会直接返回数据类型...,所以两个toString也是不一样,所以当我们 .toString.call(arr)时候就调用是Object原型上面的toString,所以可以判断出对象类型 注意 {}调用传统toString

2.9K40

C语言指针初始化和赋值

不是传递字符串值。...字符串常量传递首地址,不可以通过*cp修改该字符串值,因为该字符串常量,只是简单将指针指向该字符串常量 3、指针常量 在C语言中没有一种内建(built-in)方法去表示指针常量,...所以当我们使用它时候通常先写成整型常量形式,然后再通过强制类型转换把转换成相应类型,如:int * , double * , char *等。...对于这个赋值问题还可以换一个角度去理解,在C语言中,使用赋值操作符,赋值操作符左边和右边表达式类型应该是相同,如果不是,赋值操作符将试图把右边表达式值转换为左边类型。...要注意是:对于一个不确定要指向何种类指针,在定义之后最好把初始化为NULL,并在解引用这个指针进行检验,防止解引用空指针。

2.3K10
领券