#计算正方形的周长和面积
class Square:
def __init__(self,side_len):
self.side_len = side_len
def perimeter(self):
return self.side_len*4
def area(self):
return self.side_len **2
s = Square(5)
print(s.perimeter())
print(s.area())

命名空间

class Course:
language = 'Chinese'
def __init__(self,teacher,course_name,period,price):
self.teacher = teacher
self.name = course_name
self.period = period
self.price = price python = Course('egon','python','6 months',20000)
Course.language = 'English' #对类里的静态属性进行修改
# Course.__dict__['language'] = 'Chinese'
# print(Course.language)
print(python.language)
#类中的静态变量,可以被对象和类调用
#对于不可变数据类型,类变量最好用类操作,而不应该用对象名操作
#对于可变数据类型,修改是共享的,重新赋值是独立的

class Course:
language = 'Chinese'
def __init__(self,teacher,course_name,period,price):
self.teacher = teacher
self.name = course_name
self.period = period
self.price = price python = Course('egon','python','6 months',20000)
linux = Course('oldboy','python','6 months',20000)
Course.language = 'English' #对类里的静态属性进行修改
# Course.__dict__['language'] = 'Chinese'
# print(Course.language)
# print(python.language)
# print(linux.language)
python.language = 'go-lang'
#类中的静态变量,可以被对象和类调用
#对于不可变数据类型,类变量最好用类操作,而不应该用对象名操作
#对于可变数据类型,修改是共享的,重新赋值是独立的
print(python.language) print(Course.language) print(linux.language)

go-lang
English
English

#类中的静态变量,可以被对象和类调用
#对于不可变数据类型,类变量最好用类操作,而不应该用对象名操作
python.language = 'Chinese'
del python.language
class Course:
language = ['English']
def __init__(self,teacher,course_name,period,price):
self.teacher = teacher
self.name = course_name
self.period = period
self.price = price python = Course('egon','python','6 months',20000)
linux = Course('oldboy','python','6 months',20000)
# Course.language = 'Chinese' #对类里的静态属性进行修改
# Course.__dict__['language'] = 'Chinese'
# print(Course.language)
# print(python.language)
# print(linux.language)
python.language[0] = 'Chinese'
# del python.language
#类中的静态变量,可以被对象和类调用
#对于不可变数据类型,类变量最好用类操作,而不应该用对象名操作
#对于可变数据类型,修改是共享的,重新赋值是独立的
print(python.language)
print(Course.language)
print(linux.language) ['Chinese']
['Chinese']
['Chinese']
class Course:
language = ['English']
def __init__(self,teacher,course_name,period,price):
self.teacher = teacher
self.name = course_name
self.period = period
self.price = price python = Course('egon','python','6 months',20000)
linux = Course('oldboy','python','6 months',20000)
# Course.language = 'Chinese' #对类里的静态属性进行修改
# Course.__dict__['language'] = 'Chinese'
# print(Course.language)
# print(python.language)
# print(linux.language)
python.language = ['Chinese']
# del python.language
#类中的静态变量,可以被对象和类调用
#对于不可变数据类型,类变量最好用类操作,而不应该用对象名操作
#对于可变数据类型,修改是共享的,重新赋值是独立的


print(python.language)
print(Course.language)
print(linux.language) ['Chinese']
['English']
['English']

#面向对象的三大特性:继承,多态和封装
#组合
class Dog:
def __init__(self,name,aggr,hp,kind):
self.name =name
self.aggr = aggr
self.hp =hp
self.kind =kind
def bite(self,persion):
persion.hp -= self.aggr
class Person:
def __init__(self,name,aggr,hp,sex):
self.name =name
self.aggr = aggr
self.hp =hp
self.sex =sex
self.money = 0
def attack(self,dog):
dog.hp -= self.aggr
def get_weapon(self,weapon):
if self.money >= weapon.price:
self.money -= weapon.price
self.weapon = weapon
self.aggr += weapon.aggr
else:
print('余额不足,请先充值') class Weapon:
def __init__(self,name,aggr,njd,price):
self.name = name
self.aggr = aggr
self.njd = njd
self.price = price def hand18(self,person):
if self.njd >0:
person.hp -= self.aggr * 2
self.njd -= 1 w = Weapon('打狗棒',100,3,998)
alex = Person('alex',0.5,100,'不详')
jin = Dog('金老板',100,500,'不详')
alex.money += 1000
alex.get_weapon(w)
print(alex.weapon)
print(alex.aggr)
alex.attack(jin)
print(jin.hp)
alex.weapon.hand18(jin)
print(jin.hp)
# 组合:一个对象的属性值是另一个类的对象
# alex.weapon是 Weapon类的一个对象

Python9-面对对象2-day23的更多相关文章

  1. 跟着百度学PHP[4]OOP面对对象编程-7-OOP的一些关键子讲解

    面对对象常用的一些关键子:http://www.cnblogs.com/xishaonian/p/6146794.html排版不是很好望见谅. THE END

  2. python面对对象编程----2:__init__

    面对对象编程估计我们最早接触到的就是__init__了,也就是实例的初始化处理过程: 1:来看看最基础的__init__ class Card(object): #抽象类Card,并不用于实例化 de ...

  3. Javascript面对对象. 第一篇

    Javascript,有两个种开发模式: 1.函数式(过程化)2.面对对象(oop),面对对象语言有一个标志,就是类,而通过类可以创建任何多个属性和方法,而Ecmascript没有类的概念,因此它的对 ...

  4. Java入门——(2)面对对象(上)

      关键词:面对对象.类..构造方法.this.static.内部类   一.面对对象的概念:把解决的问题安装一定规则划分为多个独立的对象,然后通过调用对象的方法来解决问题.其特点可概括为封装性.继承 ...

  5. Day-8: 面对对象编程

    面对过程的程序设计方法意在将函数分成子函数,再依次调用这些函数来解决问题. 而面对对象的程序设计方法,来源于自然界,类是实例的抽象,实例是类的具体.自定义出来的对象是类,而所有的数据都可以看成是对象, ...

  6. java基础--面对对象

    面对对象--概述 什么是对象? +---->对象可以泛指一切现实中存着的事物 +---->类是对象的抽象集合 什么是面对对象? +--->万物皆对象,面对对象实际就是人与万物接触== ...

  7. Python进阶_面对对象&面对过程

    这节主要讲面对对象与面对过程两种编程思想的主要区别. 一. 简单对比 面向过程是一种基础的方法,它考虑的是实际的实现步骤,一般情况下,面向过程是自顶向下逐步求精,其最重要的是模块化的思想方法. 面向对 ...

  8. python面对对象(不全解)

    面对对象:以人类为例,人类通用功能:吃喝拉撒,就可以封装成一个类,不同功能:嫖赌毒,就是对象的不同功能.继承,多态… 上码 class Person(object): def __init__(sel ...

  9. C语言面对对象设计模式汇编

    面向对象发展到今天,已经出现了许许多多优秀的实践.方法和技术.很多的技术都能够有效的提高软件质量.IBM上的<面向对象软件开发和过程>系列文章对面对对象设计从如下层面进行了详细的介绍:代码 ...

  10. python面对对象

    面对过程VS面对对象 面向过程的程序设计的核心是过程,过程就是解决问题的步骤,面向过程的设计就是考虑周全什么时候处理什么东西 优点:极大的降低了写程序的复杂度,只需要顺着要执行的步骤,堆叠代码即可. ...

随机推荐

  1. Python 数字模块

    Python中的数字模块 math模块 random模块 Decimal模块 - 没有损失的小数 Fraction模块 - 可以计算分数

  2. 【Codeforces1111D_CF1111D】Destroy the Colony(退背包_组合数学)

    题目: Codeforces1111D 翻译: [已提交至洛谷CF1111D] 有一个恶棍的聚居地由几个排成一排的洞穴组成,每一个洞穴恰好住着一个恶棍. 每种聚居地的分配方案可以记作一个长为偶数的字符 ...

  3. Java Lambda表达式 Stream

    Stream Stream不是集合元素,它不是数据结构并不保存数据,而是有关算法和计算的,更像是一个高级版本的Iterator,原始版本的Iterator,用户只能显式地一个一个遍历元素并对其进行操作 ...

  4. CF1043D Mysterious Crime

    思路: 参考了http://codeforces.com/blog/entry/62797,把第一个序列重标号成1,2,3,...,n,在剩下的序列中寻找形如x, x + 1, x + 2, ...的 ...

  5. Smack+OpenFire搭建IM通信,包含心跳和自动重连(Android实现)

    Smack是一个开源,易于使用的XMPP(jabber)客户端类库.优点:简单的,功能强大,给用户发送信息只需三行代码便可完成.缺点:API并非为大量并发用户设计,每个客户要1个线程,占用资源大.Op ...

  6. Android WiFi使用记录

    最近在做Android的WiFi部分的开发,连接的工具类参照了这个文章的工具类. http://www.cnblogs.com/zhuqiang/p/3566686.html 开发中碰上的一些问题,在 ...

  7. jenkins SVN更改密码后出现的坑爹问题

    1.前提 公司SVN账号密码和AD账号密码是绑定在一起的,为了保证代码检出总是最新,jenkins中做代码检查前总会从SVN中检出最新代码. 最近公司要求AD账户不得使用原始密码,更改密码后,jenk ...

  8. python super详解

    一.super() 的入门使用 - 在类的继承中,如果重定义某个方法,该方法会覆盖父类的同名方法,但有时,我们希望能同时实现父类的功能, 这时,我们就需要调用父类的方法了,可通过使用 super 来实 ...

  9. LightOJ 1422 Halloween Costumes (区间DP,经典)

    题意: 有个人要去参加万圣节趴,但是每到一个趴都要换上特定的服装,给定一个序列表示此人要穿的衣服编号(有先后顺序的),他可以套很多件衣服在身上,但此人不喜欢再穿那些脱下的衣服(即脱下后就必须换新的), ...

  10. php随机生成国内ip地址

    获得一个国家所有ip段,随机生成国内ip地址的缩水实现.注意:  $ip_long数组中后5个值在64位系统中可能是错误的(下面代码中  $ip_long 数组的后五个值在32位系统中为负数,64位系 ...