1.面向对象

 # name='元昊'
#
# gender='母'
#
# type='藏獒' #狗的特征
dog1={
'name':'元昊',
'gender':'母',
'type':'藏獒'
}
dog2={
'name':'alex',
'gender':'母',
'type':'腊肠',
}
dog3={
'name':'hb',
'gender':'母',
'type':'哈士奇'
}
person1={
'name':'武sir',
'gender':'母',
'type':'人'
} person2 = {
'name':'流水',
'gender':'母',
'type':'狗'
} def dog(name,gender,type):
# 狗的动作
def jiao(dog):
print('一条狗[%s],汪汪汪' % dog['name'])
def chi_shi(dog):
print('一条[%s] 正在吃屎' % dog['type'])
dog1 = {
'name':name,
'gender': gender,
'type': type,
'jiao':jiao,
'chi_shi':chi_shi,
}
return dog1
# d1=dog('元昊','母','中华田园犬')
# d2=dog('alex','母','藏敖')
# print(d1)
# print(d2)
# d1['jiao'](d1)
# d2['chi_shi'](d2) # def dog(name,gender,type):
# # 狗的动作
# def jiao(dog):
# print('一条狗[%s],汪汪汪' % dog['name'])
# def chi_shi(dog):
# print('一条[%s] 正在吃屎' % dog['type'])
# def init(name,gender,type):
# dog1 = {
# 'name':name,
# 'gender': gender,
# 'type': type,
# 'jiao':jiao,
# 'chi_shi':chi_shi,
# }
# return dog1
# return init(name,gender,type)
#
# d1=dog('元昊','母','中华田园犬')
# d2=dog('alex','母','藏敖')
# print(d1)
# print(d2)
# d1['jiao'](d1)
# d2['chi_shi'](d2)

2.面向对象设计练习

 def school1(name,addr,type):
def init(name,addr,type):
sch = {
'name':name,
'addr':addr,
'type':type,
'kao_shi':kao_shi,
'zhao_sheng':zhao_sheng
}
return sch
def kao_shi(school):
print('%s 学校正在考试'%school['name'])
def zhao_sheng(school):
print('%s %s 正在招生'%(school['type'],school['name']))
return init(name,addr,type)
s1 = school1('将近','sb','肥猪')
s1['zhao_sheng'](s1)
def school(name,addr,type):
def init(name, addr, type):
sch = {
'name': name,
'addr': addr,
'type': type,
'kao_shi': kao_shi,
'zhao_sheng': zhao_sheng,
}
return sch
def kao_shi(school):
print('%s 学校正在考试' %school['name'])
def zhao_sheng(school):
print('%s %s 正在招生' %(school['type'],school['name']))
return init(name,addr,type) # s1=school('oldboy','沙河','私立学校')
# print(s1)
# print(s1['name'])
#
# s1['zhao_sheng'](s1)
#
s2=school('清华','北京','公立学校') print(s2)
print(s2['name'],s2['addr'],s2['type'])
s2['zhao_sheng'](s2)

3.面向对象展示

 #用面向对象编程独有的语法class去实现面向对象设计
class Dog:
def __init__(self,name,gender,type):
self.name=name
self.gender=gender
self.type=type def bark(self):
print('一条名字为[%s]的[%s],狂吠不止' %(self.name,self.type)) def yao_ren(self):
print('[%s]正在咬人' %(self.name)) def chi_shi(self):
print('[%s]正在吃屎' %(self.type)) dog1=Dog('alex','female','京巴')
# print(dog1.__dict__)
dog2=Dog('wupeiqi','female','腊肠')
dog3=Dog('yuanhao','female','藏獒')
#
dog1.bark()
dog2.yao_ren()
dog3.chi_shi()

4.类相关知识

 # class Chinese:
# '这是一个中国人的类'
# pass
#
# print(Chinese)
#
# #实例化到底干了什么?
# p1=Chinese() #实例化
# print(p1) '''
1.数据属性
2.函数属性
''' class Chinese:
'这是一个中国人的类'
dang='好'
def sui_di_tu_tan():
print('朝着墙上就是一口痰')
def cha_dui(self):
print('插到了前面')
#
# print(Chinese.dang)
# Chinese.sui_di_tu_tan()
# Chinese.cha_dui('元昊')
#
# print(dir(Chinese))
# print(Chinese.__dict__) #查看属性字典
# print(Chinese.__dict__['dang'])
# Chinese.__dict__['sui_di_tu_tan']()
# Chinese.__dict__['cha_dui'](1)
# print(Chinese.__name__)
# print(Chinese.__doc__)
print(Chinese.__module__)

5.对象相关知识

 '''
1.数据属性
2.函数属性
'''
class Chinese:
'这是一个中国人的类' dang='公司' # def __init__(name,age,gender):
# dic={
# 'name':name,
# 'age':age,
# 'gender':gender
# }
# return dic
def __init__(self,name,age,gender):
# print('我是初始化函数,我开始运行了')
self.mingzi=name #p1.mingzi=name
self.nianji=age #p1.nianji=age
self.xingbie=gender
# print('我结束啦') def sui_di_tu_tan(self):
print('%s 朝着墙上就是一口痰' %self.mingzi)
def cha_dui(self):
print(self)
print('%s 插到了前面' %self.mingzi) def eat_food(self,food):
print('%s 正在吃%s' %(self.mingzi,food)) p1=Chinese('元昊',18,'female') #--->__init__(self,name,age,gender)
# p1.sui_di_tu_tan()
# p1.eat_food('屎')
# #
# p2=Chinese('武sir',10000,'姑娘')
# p2.eat_food('韭菜馅饼')
# print(dir(p2))
#
# p1=Chinese.__init__(p1,name,age,gender) # print(p1.__dict__)
# print(p1.__dict__['xingbie'])
# print(p1.mingzi)
# print(p1.mingzi111111111111111) # print(p1.dang) # print(Chinese.__dict__)
# Chinese.sui_di_tu_tan(p1)
# Chinese.cha_dui(p1)
#
# p1.sui_di_tu_tan()
#
# print('[------------------->')
# p1.cha_dui()

6.类属性增删改查

 class Chinese:
country='China'
def __init__(self,name):
self.name=name def play_ball(self,ball):
print('%s 正在打 %s' %(self.name))
#查看
# print(Chinese.country) #修改
# Chinese.country='Japan'
# print(Chinese.country)
#
p1=Chinese('alex')
# print(p1.__dict__)
# print(p1.country)
#
# #增加
Chinese.dang='对的'
# #
# print(Chinese.dang)
# print(p1.dang)
#
# #删除
del Chinese.dang
del Chinese.country
#
print(Chinese.__dict__)
# print(Chinese.country)
#
#
def eat_food(self,food):
print('%s 正在吃%s' %(self.name,food)) Chinese.eat=eat_food
#
# print(Chinese.__dict__)
# p1.eat('屎')
#
#
def test(self):
print('test') Chinese.play_ball=test
p1.play_ball()# Chinese.play_ball(p1)

7.实例属性增删改查

 class Chinese:
country='China'
def __init__(self,name):
self.name=name def play_ball(self,ball):
print('%s 正在打 %s' %(self.name,ball))
p1=Chinese('alex')
# print(p1.__dict__) #查看
# print(p1.name)
# print(p1.play_ball) #增加
# p1.age=18
# print(p1.__dict__)
# print(p1.age) #不要修改底层的属性字典
# p1.__dict__['sex']='male'
# print(p1.__dict__)
# print(p1.sex) #修改
p1.age=19
print(p1.__dict__)
print(p1.age)
#
# #删除
del p1.age
print(p1.__dict__)

8.例子

 # class Chinese:
# country='China'
# def __init__(self,name):
# self.name=name
#
# def play_ball(self,ball):
# print('%s 正在打 %s' %(self.name,ball))
# p1=Chinese('alex')
# print(p1.country)
# p1.country='日本'
# print('类的--->',Chinese.country)
# print('实例的',p1.country) # country='中国'
# class Chinese:
# def __init__(self,name):
# self.name=name
#
# def play_ball(self,ball):
# print('%s 正在打 %s' %(self.name,ball))
# p1=Chinese('alex')
# print(p1.country) # country='中国'
# class Chinese:
# def __init__(self,name):
# self.name=name
#
# def play_ball(self,ball):
# print('%s 正在打 %s' %(self.name,ball))
#
# def shi_li_hua():
# name=input('>>: ')
# p1=Chinese(name)
# # print(p1.country)
# print(p1.name)
# shi_li_hua() # country='中国-------------------'
# class Chinese:
# country='中国'
# def __init__(self,name):
# self.name=name
# print('--->',country)
#
# def play_ball(self,ball):
# print('%s 正在打 %s' %(self.name,ball))
#
# print(Chinese.__dict__)
# print(Chinese.country)
# p1=Chinese('alex')
# print('实例--------》',p1.country) # Chinese.
# p.
 # class Chinese:
# country='China'
# def __init__(self,name):
# self.name=name
#
# def play_ball(self,ball):
# print('%s 正在打 %s' %(self.name,ball))
# p1=Chinese('alex')
#
# print(p1.country)
# p1.country='Japan'
# print(Chinese.country) class Chinese:
country='China'
l=['a','b']
def __init__(self,name):
self.name=name def play_ball(self,ball):
print('%s 正在打 %s' %(self.name,ball))
p1=Chinese('alex')
# print(p1.l)
p1.l=[1,2,3]
print(Chinese.l)
print(p1.__dict__)
p1.l.append('c')
print(p1.__dict__)
print(Chinese.l)

day24-python之面向对象的更多相关文章

  1. python基础——面向对象编程

    python基础——面向对象编程 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的 ...

  2. Python的面向对象3

    接下来,我们接着讲Python的面向对象,在上一次的博客中,我们详细介绍了类与对象的属性,今天,我们来详细介绍一下面向对象中的方法! 1.定义实例方法 一个实例的私有属性就是以__开头的属性,无法被外 ...

  3. Python的面向对象2

    我们接着讲解Python的面向对象 1.初始化实例属性 在现实生活中,一种类型的实例会具有相同的某些属性,把这些实例划分为一个类型,则这些实例必然有相似的部分.但是,在创建实例之后,我们一个一个的为实 ...

  4. Python的面向对象1

    今天,我们来介绍Python的面向对象编程,其实面向对象并不陌生,在C++  ,Java  ,PHP中也有大量使用! 好了,我们来步入正题! 那什么是面向对象编程呢? 1. 面向对象编程是一种程序设计 ...

  5. My way to Python - Day05 - 面向对象-思维导图

    My way to Python - Day05 - 面向对象   思维导图

  6. Python进阶---面向对象的程序设计思想

    Python的面向对象 一.面向过程与面向对象的对比 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优 ...

  7. Python之面向对象一

    引子 小游戏:人狗大战 角色:人和狗 角色属性:姓名,血量,战斗力和性别(种类) 技能:打/咬 用函数实现人打狗和狗咬人的情形 def Dog(name,blood,aggr,kind): dog = ...

  8. python基础——面向对象进阶下

    python基础--面向对象进阶下 1 __setitem__,__getitem,__delitem__ 把对象操作属性模拟成字典的格式 想对比__getattr__(), __setattr__( ...

  9. python基础——面向对象进阶

    python基础--面向对象进阶 1.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 ...

  10. python基础——面向对象的程序设计

    python基础--面向对象的程序设计 1 什么是面向对象的程序设计 面向过程的程序设计的核心是过程,过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优 ...

随机推荐

  1. MD5Encrypt加密

    package utils; import java.security.MessageDigest; public class MD5Encrypt { public MD5Encrypt() { } ...

  2. ABAP DEMO so批量导入

    *&---------------------------------------------------------------------* *& Report YDEMO_015 ...

  3. Vue学习笔记九:列表案例

    目录 前言 Bootstrap插件下载 Bootstrap表格和面板 增加数据,v-model和v-on 删除数据,事件修饰符和找索引的两种方法 查询数据,foreach和filter 全部的HTML ...

  4. vue项目开发优化

    1 按需引入ui组件 比如elementUI,不要直接在main.js中全局引入所有的组件,可以根据elementui的说明文件,按需引入 项目中的组件 2 异步引入路由组件 使用 { path:'/ ...

  5. docker常用管理命令

    本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: 容器生命周期管理 — docke ...

  6. sudo启动程序引发的进程个数不对

    这几天把自己负责的服务改成了多进程模型,然后使用sudo来启动进程,示例程序如下:   int main(void)   {   fork();   while(1);   }   编译: `gcc ...

  7. .Net Core 程序报错 在上一个操作完成之前,在此上下文上启动了第二个操作。

    错误一: 程序完整报错: A second operation started on this context before a previous operation completed. This ...

  8. 文件描述符FD的含义/文件句柄

    使用sudo lsof -nP -iTCP -sTCP:LISTEN查看占用端口的程序;因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能 概念 ...

  9. ibatis 参数 指定类型

    文档: http://ibatis.apache.org/docs/dotnet/datamapper/ch03s04.html <update id="UpdateAccountVi ...

  10. Ubuntu与Window双系统安装的注意事项

    UBUNTU与WINDOW双系统安装的注意事项   Ubuntu与Window双系统安装的注意事项 由 匿名 (未验证) 提交于 2019-05-18 10:07:41 登录 发表评论 29 次浏览 ...