python类_Python中的类
Python和Java都是面向对象的语言,对象从类中获取,类指的是同一类具有相同特征的事物,比如拉布拉多,柯基,哈士奇,它们都是狗,具有狗的相同特征,所以可以被归为一类Dog,Python中类的使用与Java中有些不同。
一、创建类
创建一个Dog类
classDog():def __init__(self,name,age,color):
self.name=name
self.age=age
self.color=colordefrun(self):
self.name+"run."
defupdate_age(self,age):
self.age=agedefprint_info(self):print (self.name + ", age:" + self.age + ", color:" + self.color)
1、方法__init__()
相当于java中的构造方法,进行初始化的工作,self参数类似于java中的this关键字,selft会自动传递到当前创建的对象中,所以在创建dog对象时不需要传递。在Python类中,也可以不显示的声明__init__方法,如下例
classCat():
name="mikyi"
defset_name(self,name):
self.name=namedefget_name(self):returnself.name
cat=Cat()print(Cat.name)print(cat.name)print(cat.get_name())
cat.set_name("xiaomaomi")print(Cat.name)print(cat.name)print(cat.get_name())
上述示例中有一点需要注意,在类中直接声明的变量,使用类名.属性名方式获取到的值始终为初始化的值,但如果类中没有属性,只是在__init__方法中通过self.方法设置的属性,则不能通过类型.方式获取该属性,如上述Dog类中,有name,age,color属性,如下操作将会抛出异常
dog=('name','12','yellow')print(Dog.name)
2、对于普通方法,如run,update_age,print_info,由于使用到了当前对象的属性,也需要传递self,若未传递,在调用时会出现如下异常
二、创建实例并访问属性
创建实例
huskie=Dog('erha','2','black and white')
通过“对象名.属性名”访问属性
huskie=Dog('erha','2','black and white')print (huskie.name)
三、访问方法
huskie=Dog('erha','2','black and white')
huskie.print_info()
四、创建多个实例
huskie=Dog('erha','2','black and white')
labrador=Dog('labuladuo','3','black')
corgi=Dog('keji','4','yellow')
五、修改属性值
1、直接修改属性
huskie=Dog('erha','2','black and white')
huskie.age='7'huskie.print_info()
2、通过方法修改
上述Dog类中update_age()即为修改属性age的方法,对属性进行修改时,建议使用这种方式处理
huskie=Dog('erha','2','black and white')
huskie.update_age('5')
huskie.print_info()
六、继承
一个类继承另外一个类时,将自动获得另一个类的所有属性和方法,原有的类称为父类,新类称为子类。子类还可以定义自己的属性和方法
犬中有救生犬,导盲犬等,救生犬和导盲犬分别又可以看做是一个类,如导盲犬类
classGuideDog(Dog):def __init__(self,name,age,color,protect_master):
super().__init__(name,age,color)
self.protect_master=protect_masterdefprotect(self):print (self.name +"protect its master" + self.protect_master + "cross the road.")
guideDog=GuideDog('xiaobai','5','white','auth')
guideDog.print_info()
guideDog.protect()
1、重写父类方法
在GuideDog类中重写父类run方法
classGuideDog(Dog):def __init__(self,name,age,color,protect_master):
super().__init__(name,age,color)
self.protect_master=protect_masterdefprotect(self):print (self.name +"protect its master" + self.protect_master + "cross the road.")defrun(self):print(self.name + "run slowly.")
guideDog=GuideDog('xiaobai','5','white','auth')
guideDog.run()
调用run函数,输出的为子类中的方法的打印
2、将实例用作属性
添加一个宠物狗市场,并且打印宠物狗的售卖信息
classDogPetMarket():def __init__(self,dog,price):
self.dog=dog
self.price=pricedefget_info(self):print (self.dog.name + ", age:" + self.dog.age + ", color:" +self.dog.color+", price:" +self.price)
huskie=Dog('erha','1','blick and white')
dogPetMarket=DogPetMarket(huskie,'100$')
dogPetMarket.get_info()
python类_Python中的类相关推荐
- python编写ATM类_Python中编写类的各种技巧和方法
有关 Python 内编写类的各种技巧和方法(构建和初始化.重载操作符.类描述.属性访问控制.自定义序列.反射机制.可调用对象.上下文管理.构建描述符对象.Pickling).你可以把它当作一个教程, ...
- python如何定义类_python中定义类
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 类的定义python中,定义类是通过class关键字,例如我们定义一个存储学生信 ...
- python3新式类_Python中新式类与经典类的区别详析
1.新式类与经典类 在Python 2及以前的版本中,由任意内置类型派生出的类(只要一个内置类型位于类树的某个位置),都属于"新式类",都会获得所有"新式类"的 ...
- python经典类和新式类_python中经典类和新式类的区别
在定义class的时候,有几种常见的写法,比如: class A: pass class B(): pass class C(object): pass 在python 2中查看以上各个class的类 ...
- 标准布局类(11中布局类)
2019独角兽企业重金招聘Python工程师标准>>> <div class="box"><div id="myAuto" ...
- python中的元类_python中的元类
类也是对象,但是类有创建对象的能力 动态创建一个类: classmonkey():defbanana(self):print 'banana!' defapple(self):print 'i wan ...
- python 类中定义类_Python中的动态类定义
python 类中定义类 Here's a neat Python trick you might just find useful one day. Let's look at how you ca ...
- python中类和对象的内容_python中的类和对象
摘要:本文主要介绍了python中的类和对象的基础内容.由于在c++中对类和对象已经有了较为深刻的认识,所以此部分就是主要熟悉一下创建方法和使用方法. 1.类.对象的创建和简单使用 主要观察创建类的方 ...
- python中文件分类_Python中的类是否在不同的文件中?
在Python中,一个文件称为 module.一个模块可以由多个类或函数组成. 由于Python不仅仅是一种OO语言,所以没有规则说明,一个文件只能包含一个类. 一个文件(模块)应该包含属于一起的类/ ...
最新文章
- 揭秘全球首次互联网8K直播背后的技术实现
- DayDayUp:哈哈,你上榜了嘛?界面新闻发布2020年中国最富1000人榜,总财富增加28%
- 使用rancher创建负载均衡服务
- java消息顺序执行_Apache Flink:如何并行执行但保持消息顺序?
- windows server搭建php mysql数据库_windows server 2008/2012安装php iis7 mysql环境搭建教程...
- c语言标准库assert,C 标准库 - assert.h
- Python编程 - 不调用相关choose库函数,“众数“挑选器、随机挑选器 的源码编程实现
- linux下重新分区、数据备份相关(parted、dd等命令)
- 遗传算法是机器学习算法嘛?_基于遗传算法的机器人控制器方法
- sqlserver 2008完整安装教程
- 【Windows远程桌面】RDP Wrapper 监听器状态为 Not listening [not supported] 的解决方法
- php js轮播图片代码,js图片轮播手动切换效果实例代码
- js 数字转为罗马数字(互转换),I 、II 、 III 、IV、V
- 海外游戏广告投放操作技巧
- Json转对象失败:No suitable constructor found for type [simple type, class com.test.faster.domain.respons
- 使用 HTML CSS 和 JavaScript 创建星级评分系统
- 几个非常好用的CMD命令
- Centos 7搭建SNORT
- EOS智能合约与DApp开发入门
- 大话设计模式之装饰模式(python实现)