Python作业,小甲鱼第039讲:类和对象:拾遗 | 课后测试题&答案

第七章Python对象和类习题及答案--中文 立即下载

0. 什么是组合?*

答: Python继承机制很有用,但容易把代码复杂化以及依赖隐含继承。因此,经常的时候,我们可以使用组合来代替。在Python里组合其实很简单,直接在类定义中把需要的类放进去实例化就可以了。

 

1. 什么时候用组合,什么时候用继承?*

答:根据实际应用场景确定。简单的说,组合用于"有一个"的场景中,继承用于"是一个"的场景中。例如,水·池里有一个乌龟,天上有一个鸟,地上有一个小甲鱼,这些适合使用组合。青瓜是瓜,女人是人,鲨鱼是鱼,这些就应该使用继承啦。

 

2. 类对象是在什么时候产生的?*

答:这个类定义完的时候,类定义就变成类对象,可以直接通过"类名属性",或者"类名 . 方法名()"引用或使用相关的属性或方法。

 

3. 如果对象的属性和方法名字相同,会怎样?

    属性会覆盖方法

 

4. 请问以下类定义中哪些是类属性,哪些是实例属性?

 类属性:num   count

 实例属性:x    y

答: num和count是类属性(静态变量) ,x和y是实例属性。大多数情况下,你应该考虑使用实例属性,而不是类属性(类属性通常仅用来跟踪与类相关的值)。

 

5. 请问以下代码中,bb对象为什么调用0方法失败?

>>> class BB:
	def printBB():
		print("no zuo no die")


		
>>> bb = BB()
>>> bb.printBB()
Traceback (most recent call last):
  File "<pyshell#26>", line 1, in <module>
    bb.printBB()
TypeError: printBB() takes 0 positional arguments but 1 was given

答:因为Python严格要求方法需要有实例才能被调用,这种限制其实就是Python所谓的绑定概念。所以Python会自动把bb对象作为第一个参数传入,所以才会出现TypeError : "需要0个参数,但实际传入了1个参数”。

>>> class BB:
	def printBB(self):
		print("no zuo no die")

		
>>> bb = BB()
>>> bb.printBB()
no zuo no die

 

 动动手:

0.思考这一讲我学习的内容,请动手在一个类中定义一个变量,用于跟踪该类有多少个实例被创建(当实例化一个对象,这个变量+1,当销毁一个对象,这个变量自动-1)。

>>> class C :
	count = 0

	def __init__(self):
		C.count += 1

	def __del__(self):
		C.count -= 1



>>> a = C()
>>> b = C()
>>> c = C()

>>> C.count
3
>>> del a
>>> C.count
2
>>> del b,c
>>> C.count
0

 

1.定义一个栈( Stack)类,用于模拟一种具有后进先出(LIFO )特性的数据结构。至少需要有以下方法:

答:

class Stack :

    def __init__(self,start=[]):
        self.stack = []
        for x in start:
            self.push(x)

    def isEmpty(self):
        return not self.stack

    def push(self , obj):
        self.stack.append(obj)

    def pop(self):
        if not self.stack:
            print ("警告,栈为空!")
        else:
            self.stack.pop()

    def top(self):
        if not self.stack:
            print ("警告,栈为空!")
        else:
            return self.stack[-1]

    def bottom(self):
        if not self.stack:
            print ("警告,栈为空!")
        else:
            return self.stack[0]

            
            
        
            
    

 

 

 

 

 

 

 

 

用STM32的SPI模式2搞定SSI绝对值编码器通信(附完整代码与避坑点) 本文详细解析了如何使用STM32的SPI模式2实现SSI绝对值编码器通信,包括硬件设计、SPI配置、数据处理算法及稳定性优化技巧。通过完整的代码示例和避坑指南,帮助工程师解决时序匹配、数据解析等常见问题,提升工业自动化系统中的编码器通信可靠性。 阅读详情

相关推荐

C++ 类

本文介绍了C++中类的核心概念和使用方法。

weixin_54859557的博客 1016

【小甲鱼Python】类和对象:继承&&课后作业

笔记 继承 语法 class DerivedClassName(BaseClassName): 被继承的类被称为父类,基类或超类,继承者称之为子类。 如果子类中定义与父类中同名的方法或属性,则在子类中会自动覆盖父类对应的方法或属性: 如果在继承时,对于一个同名的方法,想要既继承父类的操作,又另外增加子类独有的操作,有两种解决方法: 1.调用未绑定的父类方法: 父类: ...

一个自学者记录笔记和学习过程的地方 488

Android车载桌面开发实战:从CarLauncher源码解析到自定义Launcher开发(Android 11)

本文深入解析了Android 11中CarLauncher的源码架构与核心模块,并提供了从零开始定制开发车载Launcher的完整实战指南。内容涵盖车载桌面的独特定位、驾驶场景优化、多屏协同、动态内容嵌入等核心挑战,以及如何构建符合安全规范、体验流畅的自定义车载桌面应用,是车载应用开发者提升系统级定制能力的实用参考。

weixin_29266647的博客 515

【小甲鱼】Python课后作业 36课 类和对象(1)

测试题: 动动手: 36_0.py class Person: name = '小甲鱼' def printName(self): print(self.name) 36_1.py class Rectangle: length = 5 width = 4 def setRect(self): print('请输...

qq_43863790的博客 357

从零开始做题:big_zip

内容为:You_know_the_bed_feels_warmer_Sleeping_here_alone_You_know_I_dream_in_color_And_do_the_things_I_want_You_think_you_got_the_best_of_me_Think_you_had_the_last_laugh_Bet_you_think_that_everything_good_is_gone。查看压缩包内容,发现有五字节长度的文件,用crc碰撞攻击破解明文。

weixin_44626085的博客 1241

论文笔记:Group Equivariant Convolutional Networks

Group Equivariant Convolutional Networks 1、四个问题 要解决什么问题? 对卷积神经网络进行扩展,并提出一个在特定的变换(旋转、平移等,也可表示为一个特殊的群)下具有等变性的网络。 用了什么方法解决? 提出了一种新的卷积神经网络结构——群等变卷积神经网络(Group equivariant Convolutional Neural Network)...

hongbin_xu的博客 1万+

Python基础——类和对象练习题

目录定义一个类实现银行账户的概念定义三个类计算面积体积 定义一个类实现银行账户的概念 class BankNums: def __init__(self, ID, money): self.ID = ID self.money = money def addMoney(self, money): self.money += money print(f"存入金额:{money}元,余额{self.money}") de

m0_63593731的博客 1765

LaTeX伪代码字体大小调整全攻略:从algorithm到algorithm2e的实战技巧

本文详细介绍了在LaTeX中调整伪代码字体大小的全面技巧,涵盖algorithm、algorithmicx和algorithm2e等主流算法包的使用方法。从基础命令到高级配置,帮助用户解决学术论文和技术文档中的伪代码排版问题,提升算法展示的专业性和可读性。特别针对不同期刊格式要求,提供了实用的字体调整方案。

weixin_29297127的博客 436

python类和对象(练习)

类和对象练习题(第二阶段)

ciomsid7的博客 1211

AI智能体实战:从LangChain到多智能体协作的自动化新范式

在人工智能技术快速发展的今天,大语言模型(LLM)已成为推动自动化变革的核心驱动力。其原理在于通过深度学习海量文本数据,使模型能够理解、生成自然语言并执行推理任务。这一技术进步催生了AI智能体(AI Agent)这一新兴概念,它赋予自动化系统自主决策和动态规划能力,从而突破了传统脚本和RPA工具在固定流程上的局限。从技术价值看,AI智能体框架通过封装LLM调用、工具集成与流程编排,显著降低了构建复杂人机协同应用的开发门槛。在实际应用场景中,智能体尤其擅长处理信息调研、内容创作辅助、数据分析等需要处理非结构化

weixin_33730836的博客 773

如何使用Google Maps API爬取地理数据:详细教程与Python实现

Google Maps API 是一组服务的集合,允许开发者访问地图、地点、路线等地理信息。:将地址转换为地理坐标,或将地理坐标转换为地址。:计算两点之间的行车路线、步行路线等。Places API:获取附近的地点、商店、餐馆等。:计算多个地点之间的距离和时间。在接下来的代码中,我们将结合这些 API,展示如何获取并处理地理数据。本文详细介绍了如何使用 Google Maps API 获取地理数据,涵盖了从地址转经纬度、获取地点详情、计算路线、计算多个地点的距离与时间等多个功能。

2201_76125261的博客 733

Python Day11

类和对象 Python是一门面向对象的语言。主要侧重于类和对象。而面向过程的编程主要侧重于方法和函数。 类是数据(变量)和方法(函数)的集合。对象是类的一个实例。 面向对象的三大特性: 封装:封装就是把抽象的数据和对数据进行的操作封装在一起,数据被保存在内部,程序的其他部分只有通过被授权的操作(成员方法)才能对数据进行操作。也就是对外部隐藏对象的工作细节。 继承:一个类可以继承另一个类的属性和方法...

renmeigetianqizhijia的博客 420

AB测试面试题

AB实验流程以一个实际的业务场景去描述AB实验流程,限定场景来减少和面试官的信息差,确保沟通高效可以以自己简历上某个相关项目的场景来举例,或者以面试的岗位对应的业务来举例子。不能光自己说,要让面试官参与进来,引导面试官往自己熟悉的内容提问,从被动转为主动。回答要有逻辑性,简洁、准确的表达。还是延用之前提到的项目案例,假设之前抖音拍摄页面中右下角相册功能的icon 由相册图标改为 用户相册的最新一张照片这个案例写在了我的简历中。

qq_45727498的博客 857

小甲鱼零基础入门学习python--课后作业(更新至第19讲,持续更新)

本章内容: 小甲鱼零基础入门学习python--课后作业1、基础部分的作业2、函数部分的作业3、字典、集合、文件部分作业4、异常5、EasyGui6、类、对象、魔法方法7、模块8、爬虫 1、基础部分的作业 [课后作业] 第001讲:我和Python的第一次亲密接触 | 课后测试题及答案. [课后作业] 第002讲:用Python设计第一个游戏 | 课后测试题及答案. [课后作业] 第003讲:......

清风阁 2万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = &quot;R. B. Palm&quot;, title = &quot;Prediction as a candidate for learning deep hierarchical models of data&quot;, year = &quot;2012&quot;,}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er&lt;0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free &quot;Bitdeli Badge&quot;)

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

python中关于类与对象的测试题_小甲鱼Python第039讲:类和对象:拾遗 | 课后测试题及参考答案...

测试题0.什么是组合(组成)?Python继承机制很有用,但容易把容易代码复杂化以及依赖隐含继承。因此,经常的时候,我们可以使用组合代替。在Python里组合其实很简单,直接在类定义中把需要的类放进去实例化就可以了。eg:1 #乌龟类2 classTurtle:3 def __init__(self,x):4 self.num =x5 #鱼类6 classFish:7 ...

weixin_39631519的博客 392

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

第039讲:类和对象:拾遗 | 课后测试题及答案

测试题: 0. 什么是组合(组成)? 答:Python 继承机制很有用,但容易把代码复杂化以及依赖隐含继承。因此,经常的时候,我们可以使用组合来代替。在Python里组合其实很简单,直接在类定义中把需要的类放进去实例化就可以了。 // 乌龟类 class Turtle: def __init__(self, x): self.num = x // 鱼类 class Fish: def __init__(self, x): self.num = x // 水池类

ChaseTimLee的博客 263

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

小甲鱼课后习题---一个类中定义一个变量,用于跟踪该类有多少个实例被创建

在一个类中定义一个变量,用于跟踪该类有多少个实例被创建(当实例化一个对象,这个变量+1,当销毁一个对象,这个变量自动-1) #在一个类中定义一个变量,用于跟踪该类有多少个实例被创建(当实例化一个对象,这个变量+1,当销毁一个对象,这个变量自动-1) class Count: count=0 #定义一个类属性(静态变量) def __init__(self): Count.count +=1 print(Count.count

weixin_43747767的博客 317

《零基础入门学习Python》第039讲:类和对象:拾遗

0. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式! (一)组合 上节课我们学习了继承和多继承,但是我们有时候发现,有些情况你用继承也不合适,用多继承也不是,例如:现在现在要求定义一个类,叫水池,水池里要有乌龟和鱼。那大家就很苦恼了,用多继承就显得很奇葩了,因为如果把水池继承乌龟和鱼,那显然就是不同物种。那怎样才能把它们组成一个和谐的类呢,这就是我们今天首先要讲的内容:...

来自江南的你的博客 2015

类和对象:拾遗+习题复习

##组合 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(上节课我们学习了继承和多继承,但是我们有时候发现,有些情况你用继承也不合适,用多继承也不是,例如:现在现在要求定义一个类,叫水池,水池里要有乌龟和鱼。那大家就很苦恼了,用多继承就显得很奇葩了,因为如果把水池继承乌龟和鱼,那显然就是不同物种。所以...

Monster丶ZF的博客 719

[Python]小甲鱼Python视频第039课(类和对象:拾遗 )课后题及参考解答

# -*- coding: utf-8 -*- """ Created on Tue Mar 12 23:09:01 2019 @author: fengs """ """ 测试题: 0. 什么是组合(组成)? 完全忘记了-------&gt; 就是把类的属性赋值成其他类的实例化对象 1. 什么时候用组合,什么时候用继承? 完全忘记了 ----...

weixin_30782293的博客 304

Python类定义字类变量与实例变量

学过JAVA或C++等语言的程序员再去学Python类设计时感觉非常不适应,因为Python是在太自由了,让人无所适从,来python定义类时的变量来说,其定义方式、作用域、操作方法都与上述两种语言有更大的可操作空间。Python类中定义的变量分为类变量和实例变量(也叫成员变量、对象变量),类变量直接定义在类里面(不在函数里面),前面不会有一个self修饰;相反,实例变量大都定义在实例函数里面,通

chb4715的博客 1万+

Python练习题33/34/35/36/37/38

》》点赞,收藏+关注,理财&amp;技术不迷路《《 课后习题三十三(面向对象-self): 以下代码体现了面向对象编程的什么特点? 当程序员不像把同一段代码写几次,他们发明了函数解决这类问题,当程序员有了一个类,又想建立一个非常相近的新类,他们会怎么做呢? Self参数的作用是什么? 如果我们不希望对象的属性或发放被外部直接引用,我们可以怎么做? 类在实例化后哪个方法会被自动调用? 请解释下边代码错误的原因: 动动手: 游戏编程:按以下要求定义一个乌龟类和鱼类.

大厂offer宝典 808

定义一个类只能创建一个对象

有时我们的程序中需要定义一个类,这个类只能创建一个youxiaosh

liuchenglong1026的专栏 8127

第039讲: 类和对象:拾遗 | 学习记录(小甲鱼零基础入门学习Python)

(标答出处: 鱼C论坛) 《零基础入门学习Python》 测试题: 答 :python的继承机制很有用,但是容易把代码复杂化以及以来隐含继承。所以,在使用的时候,可以使用组合(组成)来代替继承,使用方法很简单,只需要在类的定义中把需要的类放进去实例化就行了。 答:根据实际场合决定,组合用于“有一个”的场景中,继承用于“是一个”的场景中。例如: 水池中有乌龟,鱼,青蛙,应该使用组合;因为乌龟,...

一只没有脚的猪的博客 1168

第039讲:类和对象:拾遗

0. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式! (一)组合 上节课我们学习了继承和多继承,但是我们有时候发现,有些情况你用继承也不合适,用多继承也不是,例如:现在现在要求定义一个类,叫水池,水池里要有乌龟和鱼。那大家就很苦恼了,用多继承就显得很奇葩了,因为如果把水池继承乌龟和鱼,那显然就是不同物种。那怎样才能把它们组成一个和谐的类呢,这就是我们今天首先要讲的内容:组合。 组合的用法很简单,举例说明: class Turtle: def __init__(se

catrtees的博客 318

python类与对象的组合与继承

1、把类的对象实例化放到一个新的类里面叫做类的组合,组合就是指几个横向关系的类放在一起,纵向关系的类放在一起是继承,根据实际应用场景确定。简单的说,组合用于“有一个”的场景中,继承用于“是一个”的场景中。例如,水池里有一个乌龟,天上有一个鸟,地上有一个小甲鱼,这些适合使用组合。青瓜是瓜,女人是人,鲨鱼是鱼,这些就应该使用继承啦实例如下: class Turtle: def __init...

weixin_30335353的博客 155
上一篇: Python学习,小甲鱼课后作业,037,类和对象:面向对象编程
下一篇: Python学习,小甲鱼044魔法方法,简单定制
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值