python基础学习笔记——面向对象初识
面向对象初识
python中一切皆对象。
类有两种:
新式类:在py3中所有类都是新式类
经典类:在py2中只有类本身继承了object类才叫做新式类,默认是经典类
class Person:
country = "中国" # 静态属性 def __init__(self, name, age, sex): # 初始化对象 在实例化时自动将对象/实例本身传给__init__的第一个参数。
self.name = name
self.age = age
self.sex = sex def eat(self): # 动态属性或方法
return "%s在吃饭" % self.name # 访问类的属性
print(Person.country)
print(Person.__dict__) # 查看类具有的属性和方法 # 实例化 实例化会自动执行__init__方法,可以用它来为每个实例对象定制自己的特征
spf = Person("spf", , "男") # 类名() 就等于在执行Person.__init__(),执行完__init__()就会返回一个对象。这个对象类似一个字典,存着属于这个人本身的一些属性和方法。 # 访问类的属性和方法
print(Person.eat(spf))
print(spf.eat())
class Person:
def __init__(self, name, sex, hp, dps, bag=[]):
"""
人的特性
:param name: 昵称
:param sex: 年龄
:param hp: 血量
:param dps: 攻击力
:param bag: 背包
"""
self.name = name
self.sex = sex
self.hp = hp
self.dps = dps
self.bag = bag def hit(self, dog):
"""
方法:人打狗
:param dog: 实例化的狗
:return:
"""
dog.hp -= self.dps
print("Info:{0}打了{1},{1}掉了{2}血,剩余{3}血".format(self.name, dog.name, self.dps, dog.hp)) class Dog:
def __init__(self, name, kind, hp, dps):
"""
人的特性
:param name: 昵称
:param kind: 品种
:param hp: 血量
:param dps: 攻击力
"""
self.name = name
self.kind = kind
self.hp = hp
self.dps = dps def hit(self, person):
"""
方法:狗咬人
:param person: 实例化后的人
:return:
"""
person.hp -= self.dps
print("Info:{0}咬了{1},{1}掉了{2}血,剩余{3}血".format(self.name, person.name, self.dps, person.hp)) alex = Person("金角大王", "男", , )
hsq = Dog("旺财", "哈士奇", , ) alex.hit(hsq) # Info:金角大王打了旺财,旺财掉了300血,剩余49700血
hsq.hit(alex) # Info:旺财咬了金角大王,金角大王掉了500血,剩余4500血 print(alex.hp) #
print(hsq.hp) #
from math import pi
class Yuan:
def __init__(self,r):
"""
圆的属性
:param r: 半径
"""
self.r = r
def mj(self):
"""
求圆面积方法
:return: 圆面积
"""
return pi * self.r **
def zj(self):
"""
求圆的周长
:return: 圆周长
"""
return * pi * self.r
yuna1 = Yuan()
print(yuna1.mj())
python基础学习笔记——面向对象初识的更多相关文章
- 0003.5-20180422-自动化第四章-python基础学习笔记--脚本
0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...
- python 基础学习笔记(1)
声明: 本人是在校学生,自学python,也是刚刚开始学习,写博客纯属为了让自己整理知识点和关键内容,当然也希望可以通过我都博客来提醒一些零基础学习python的人们.若有什么不对,请大家及时指出, ...
- Python 基础学习笔记(超详细版)
1.变量 python中变量很简单,不需要指定数据类型,直接使用等号定义就好.python变量里面存的是内存地址,也就是这个值存在内存里面的哪个地方,如果再把这个变量赋值给另一个变量,新的变量通过之前 ...
- Python基础学习笔记(十三)异常
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-exceptions.html Python用异常对象(excep ...
- Python基础学习笔记(十二)文件I/O
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-files-io.html ▶ 键盘输入 注意raw_input函 ...
- Python基础学习笔记(十一)函数、模块与包
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-functions.html 3. http://www.liao ...
- Python基础学习笔记(十)日期Calendar和时间Timer
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-date-time.html 3. http://www.liao ...
- Python基础学习笔记(九)常用数据类型转换函数
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-variable-types.html 3. http://www ...
- Python基础学习笔记(八)常用字典内置函数和方法
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-dictionary.html 3. http://www.lia ...
随机推荐
- 使用CRA开发的基于React的UI组件发布到内网NPM上去
前言:构建的ES组件使用CNPM发布内网上过程 1. 使用Create-React-APP开的组件 如果直接上传到NPM,你引用的时候会报: You may need an appropriate l ...
- springboot项目实现批量新增功能
这个困扰我一整天东西,终于解决了. 首先是mybatis中的批量新增sql语句. 注意:这里我给的是我需要新增的字段,你们改成你们需要的字段. <insert id="insertBa ...
- 一个好用的压力测试工具tsung
一个好用的压力测试工具tsung 前段时间一直在忙各种事情,快三周没弄过引擎了,今天有点时间,正好之前写的服务器引擎也到了收尾测试的阶段,于是就研究了下怎么测试服务器压力. ...
- css:focus伪类的使用
css中:focus伪类的使用,即给已获取焦点的元素设置样式 示例一 <!DOCTYPE html> <html lang="en"> <head&g ...
- PHP_RAW_POST_DATA特性
在PHP5.6.x中已废止特性 使用 always_populate_raw_post_data 会导致在填充 $HTTP_RAW_POST_DATA 时产生 E_DEPRECATED 错误. 请使用 ...
- POJ 2184 Cow Exhibition 奶牛展(01背包,变形)
题意:有只奶牛要证明奶牛不笨,所以要带一些奶牛伙伴去证明自己.牛有智商和幽默感,两者可为负的(难在这),要求所有牛的智商和之 / 幽默感之和都不为负.求两者之和的最大值. 思路:每只牛可以带或不带上, ...
- Linq语法学习_增删篇。
关键词: select from where in into join on equals orderby descending thenby Table<TEntity> Default ...
- 发现知乎的一个Bug,并且我绕过了此Bug,沾沾自喜中...
发现问题 在知乎点击修改头像,上传图片时发现一片空白.凭着程序员的直觉,第一反应时看下控制台是否有报错.果然发现如下: Refused to load the image 'data:image/jp ...
- 为什么我的C4C Service Request没办法Release到ERP?
问题 UI上发现找不到Release to ERP的按钮: 但是在UI Designer里是能看到这个按钮的.检查其Visible的属性,绑到了一个Calculated Rule上面: 发现其显示在r ...
- javascript报错:ReferenceError: $ is not defined解决办法
原因很简单,要么是未导入jquery包,要么是导入的顺序不对. 例如,我在制作Chrome扩展程序时,其中的一块代码如下: 然后运行时报上述错误. 解决方法:我们不难发现script位置有问题,因为$ ...