python 类和对象 经常用吗_python基础教程之对象和类的实际运用

我们熟悉了对象和类的基本概念。我们将进一步拓展,以便能实际运用对象和类。

调用类的其它信息

中提到,在定义方法时,必须有self这一参数。这个参数表示某个对象。对象拥有类的所有性质,那么我们可以通过self,调用类属性。

class human(object):

laugh = 'hahahaha'

def show_laugh(self):

print self.laugh

def laugh_100th(self):

for i in range(100):

self.show_laugh()

li_lei = human()

li_lei.laugh_100th()

这里有一个类属性laugh。在方法show_laugh()中,通过self.laugh,调用了该属性的值。

还可以用相同的方式调用其它方法。方法show_laugh(),在方法laugh_100th中()被调用。

通过对象可以修改类属性值。但这是危险的。类属性被所有同一类及其子类的对象共享。类属性值的改变会影响所有的对象。

__init__()方法

__init__()是一个特殊方法(special method)。python有一些特殊方法。python会特殊的对待它们。特殊方法的特点是名字前后有两个下划线。

如果你在类中定义了__init__()这个方法,创建对象时,python会自动调用这个方法。这个过程也叫初始化。

class happybird(bird):

def __init__(self,more_words):

print 'we are happy birds.',more_words

summer = happybird('happy,happy!')

这里继承了bird类,它的定义见上一讲。

屏幕上打印:

we are happy birds.happy,happy!

我们看到,尽管我们只是创建了summer对象,但__init__()方法被自动调用了。最后一行的语句(summer = happybird...)先创建了对象,然后执行:

summer.__init__(more_words)

'happy,happy!' 被传递给了__init__()的参数more_words

对象的性质

我们讲到了许多属性,但这些属性是类的属性。所有属于该类的对象会共享这些属性。比如说,鸟都有羽毛,鸡都不会飞。

在一些情况下,我们定义对象的性质,用于记录该对象的特别信息。比如说,人这个类。性别是某个人的一个性质,不是所有的人类都是男,或者都是女。这个性质的值随着对象的不同而不同。李雷是人类的一个对象,性别是男;韩美美也是人类的一个对象,性别是女。

当定义类的方法时,必须要传递一个self的参数。这个参数指代的就是类的一个对象。我们可以通过操纵self,来修改某个对象的性质。比如用类来新建一个对象,即下面例子中的li_lei, 那么li_lei就被self表示。我们通过赋值给self.attribute,给li_lei这一对象增加一些性质,比如说性别的男女。self会传递给各个方法。在方法内部,可以通过引用self.attribute,查询或修改对象的性质。

这样,在类属性的之外,又给每个对象增添了各自特色的性质,从而能描述多样的世界。

class human(object):

def __init__(self, input_gender):

self.gender = input_gender

def printgender(self):

print self.gender

li_lei = human('male') # 这里,'male'作为参数传递给__init__()方法的input_gender变量。

print li_lei.gender

li_lei.printgender()

在初始化中,将参数input_gender,赋值给对象的性质,即self.gender。

li_lei拥有了对象性质gender。gender不是一个类属性。python在建立了li_lei这一对象之后,使用li_lei.gender这一对象性质,专门储存属于对象li_lei的特有信息。

对象的性质也可以被其它方法调用,调用方法与类属性的调用相似,正如在printgender()方法中的调用。

总结

通过self调用类属性

__init__(): 在建立对象时自动执行

类属性和对象的性质的区别

希望与广大网友互动??

点此进行留言吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501878.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java get properties_Java.lang.System之getProperties()方法

Environmentjava.vm.version——>25.60-b23java.vm.vendor——>Oracle Corporationjava.vendor.url——>http://java.oracle.com/idea.launcher.port——>7533java.vm.name——>Java HotSpot(TM) 64-Bit Server VMfile.encoding.pkg——>sun.iouser.country—…

mysql set语句_MySQL Prepared语句简介

之前的MySQL版本4.1,查询以文本格式发送到MySQL服务器。 之后,MySQL服务器使用文本协议将数据返回给客户端。MySQL必须完全解析查询,并将结果集转换为字符串,然后再将其返回给客户端。 文本协议具有严重的性能问题。为了解决这个问…

java resultset close_java代码ResultSet is closed

我用的Eclipse开发工具写java代码,连接的是SQLServer2000。提示ResultSetisclosed代码如下:privatestaticvoidgetDBConnection(){try{Class.forName(strName);connDriverManager.ge...我用的Eclipse开发工具写java代码,连接的是SQL Server 20…

三同轴连接器_一种毫米波频段微带同轴转换结构

在微波电路中,同轴电缆和微带线是微波系统中常见的两种微波传输线,同轴电缆以其频带宽、屏蔽性好、结构简单、可弯曲等特性,常被用作模块或系统之间连接的传输线。在高频段,微带线是混合微波集成电路(Hybrid Microwave Integrated…

java rhino 运行 js_Mozilla Rhino :如何从Java调用JS函数

小编典典String script “function abc(x,y) {return xy;}”;Context context Context.enter();try {ScriptableObject scope context.initStandardObjects();Scriptable that context.newObject(scope);Function fct context.compileFunction(scope, script, “script”,…

java getselecteditem_java – 将getSelectedItem()从JComboBox转换为int或任何其他东西

它在这里与对象一起工作得很好.import java.awt.*;import javax.swing.*;class TestCombo {public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable() {public void run() {Integer[] numbers {1,2,3};String[] names {"Ben", "Ji…

java二叉树合并_Java(树的前中后序遍历构造二叉树题型整合)前序和中序、中序和后序、前序和后序遍历序列构造二叉树算法整合归纳...

前言二叉树各种花里胡哨的算法题真的把我搞晕了,今天特地整理出一类有关二叉树的算法题,希望能帮助阅读到此文章的人,今后不再受此类题型的困扰。一、题目类型已知二叉树的两种遍历序列,请根据该序列构建二叉树;①根据…

nginx https透明代理_Nginx反向代理https,配置lets-encrypt证书教程

前言本站也终于迁移到https了,由于全Docker部署,迁移过程中真是艰难无比(wordpress那块被折腾的想放弃了),也欢迎访问本人博客,(知乎的排版有些乱)Nginx反向代理https,配置lets-encr…

nginx 一个请求发给多台机器_配置Nginx实现负载均衡

企业在解决高并发问题时,一般有两个方向的处理策略,软件、硬件,硬件上添加负载均衡器分发大量请求,软件上可在高并发瓶颈处:数据库web服务器两处添加解决方案,其中web服务器前面一层最常用的的添加负载方案…

怎么用记事本写java_如何用记事本写下第一个Java程序-Fun言

在刚学java的时候,刚开始并未接触类似于Myeclipse这类的编辑器,都是用记事本编写程序,这样虽然很慢,但是能让我们明白其中的原理,所以今天来教大家用记事本来写第一个java程序"Hello World!"准备…

python中list是什么类型_Python中的list数据类型

创建列表sample_list [a,1,(a,b)]Python 列表操作sample_list [a,b,0,1,3]得到列表中的某一个值value_start sample_list[0]end_value sample_list[-1]删除列表的第一个值del sample_list[0]在列表中插入一个值sample_list[0:0] [sample value]得到列表的长度list_length …

pythonhash加密_Python字符串hashlib加密模块使用案例

主要用于对字符串的加密,最常用的为MD5加密:import hashlibdef get_md5(data):obj hashlib.md5()obj.update(data.encode(utf-8))result obj.hexdigest()return resultval get_md5(123) #这里放入要加密的字符串文字。print(val)#简便的写法&#xff…

python网络爬虫资源库名_Python网络爬虫

网友NO.524767Python网络爬虫与信息提取(实例讲解)课程体系结构: 1、Requests框架:自动爬取HTML页面与自动网络请求提交 2、robots.txt:网络爬虫排除标准 3、BeautifulSoup框架:解析HTML页面 4、Re框架:正则框架,提取页…

静态成员 java_JAVA中的静态成员

//Java中的静态成员/**静态的成员变量是属于类的,不属于某个对象,是共享的。* 访问时可以用类名.静态属性直接访问,也可以用对象.访问,后者不提倡。* 静态的成员方法只能访问静态的成员*/class Point{static int age ; //所有人共用agestatic…

python骨灰技巧_Pandas技巧,某骨灰级Pythoner经验总结,呕心沥血!

原标题:Pandas技巧,某骨灰级Pythoner经验总结,呕心沥血!Python已迅速发展为数据科学家必备的编程语言。python作为一种编程语言提供了更加优秀、宽阔的生体系统与深度的科学计算库。在科学计算库中,Pandas对数据科学最…

java课外兴趣小组管理系统_课外兴趣小组活动方案

课外活动在一定程度上可以开发孩子们的兴趣和天赋,下面是学习啦小编为你整理的课外兴趣小组活动方案,希望对你有用!课外兴趣小组活动方案1一、指导思想:为致力学校内涵式发展,全面推进素质教育,促进学生的全面发展和健…

软件项目周报_有关细节、效率、周报和扯淡

1、有关细节聊聊工作中的细节。有两个视角,「下属」和「上级」。大部分人同时有这两个角色,但屁股转变就有不同看法。对于下属来说,细节是自己的事,上级管得多会很让人烦,而且觉得这个上级很无能,只会盯着细…

java修改配置文件参数_在java类中获取在.properties配置文件中设置的参数

如何获取.properties配置文件中的参数,我在网上查了半天没弄明白,后来在以前的项目中找到了,就写下来,避免遗忘。1.配置文件:message_product.propertiestotal_product2service11,新股发行短信提醒服务,发行的详细信息…

ps发光插件_PS插件自定义区域发光真实辉光插件 Oniric Glow Generator for Photoshop【资源分享1444】...

AE特效PR剪辑C4D影视后期全世界只有不到1%的人关注了你是个很特别的人AE影视后期定期推送「AEPRC4D 影视特效合成 婚庆剪辑调色 电视广告包装 微电影制作 SpeedGrade达芬奇专业调色 摄影等」打造影视后期高端学习平台影视后期 ID:AEPRC4D9【PS插件信息】非常棒的一款…

java按时间范围过滤_在Java中,如何仅选择或过滤在特定时间段内创建的文件

谢谢Ben, Nicolas-R, Basil-Bourque。通过所有输入(使用listFiles,更改过滤器逻辑和使用joda),这就是我最终制作的&像魅力的工作:File directory new File(fileLoc);FileFilter filter new FileFilter() {public…