一、分类

1、面向过程

2、面向函数

3、面向对象

二、类和对象

1、宏关

类是抽象的,对象是具体的

2、实例化

类->对象

3、类的作用

1)实例化成对象

实例化的过程,创建self对象,调用__init__()方法,获取返回值

2)调用静态属性

4、对象的作用

1)调用函数

2)查看属性

5、补充

1)类和属性都有__dict__

2)self可以看成字典(不严谨)

3)初始化的__init__和方法的形参必须有self

4)类的名字首字母大写

5)类的关键字class

# 计算长方形的周长、面积 square  perimeter area
class Square: # 定义类
def __init__(self, wide, height): # 初始化
self.wide = wide
self.height = height def per(self): # 周长方法
return (self.height + self.wide) * 2 def area(self): # 面积方法
return self.wide * self .height s1 = Square(2, 4) # 实例化
p1 = s1.per() # 对象调用方法
a1 = s1.area()
print(p1, a1)
class Person:
country = 'China' # 静态属性/类属性 def __init__(self, name, sex, age): # 初始化
self.name = name
self.sex = sex
self.age = age def hobby(self, hob):
print('大叫好,俺叫%s,我是%s生,我今年%d岁,我喜欢%s' % (self.name, self.sex, self.age, hob)) person = Person('张飞', '男', 24) # 实例化
person.hobby('女人')
print(Person.country)
Person.hobby(person, '女人') # Person.hobby(person, '女人') 通过类调用方法,一般不这么写,与person.hobby('女人') 效果用于
""""
大叫好,俺叫张飞,我是男生,我今年24岁,我喜欢女人
China
大叫好,俺叫张飞,我是男生,我今年24岁,我喜欢女人
"""

三、  命名空间

1、类的命名空间

定义:创建一个类就会创建一个类的命名空间

作用:储存属性

2、属性分类

静态属性:类里面定义的变量

动态属性:类里面定义的方法

类命名空间的属性是共享对象的

3、对象的命令空间

类->对象,实例化,创建对象的命名空间,是__init__里的属性

对象调用属性的过程:

先从对象命名空间里找,找不到,到类命名空间找,找不到,就不会在找,抛出异常

4、绑定方法

对象/实例.方法名

四、组合用法

定义:一个类的对象作为另一个类的数据属性

class Birthday:
def __init__(self, month, day):
self.month = month
self.day = day class Teacher:
def __init__(self, name, age, birth):
self.name = name
self.age = age
self.birth = birth b1 = Birthday(11, 10)
te = Teacher('tom', 22, b1) # b1是Birthday类的对象,作为Teacher类的数据属性
print(te.birth.month)

python 面向对象-初识的更多相关文章

  1. Python面向对象 | 初识

    一.面向对象编程 类 : 具有相同属性和技能的一类事物 对象: 就是对一个类的具体的描述 实例化:类——>对象的过程 使用面向对象的好处: 使得代码之间的角色关系更加明确 增强了代码的可扩展性 ...

  2. 初识python面向对象

    一.初识python面向对象: class Person: #使用class关键字定义一个类 age=0 #类变量(静态变量) def eat(self,food): #定义一个方法 self.age ...

  3. python递归 及 面向对象初识及编程思想

    递归 及 面向对象初识及编程思想   一.递归 1.定义: 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. (1)递归就是在过程或函数里调用自身: (2)在使用递 ...

  4. python基础学习笔记——面向对象初识

    面向对象初识 python中一切皆对象. 类有两种: 新式类:在py3中所有类都是新式类 经典类:在py2中只有类本身继承了object类才叫做新式类,默认是经典类 class Person: cou ...

  5. Python中面向对象初识到进阶

    面向对象初识到进阶 # 面向对象结构: # class 类名: # def __init__(self,参数1,参数2): # self.对象的属性1 = 参数1 # self.对象的属性2 = 参数 ...

  6. Python面向对象01 /面向对象初识、面向对象结构、类、self、实例化对象

    Python面向对象01 /面向对象初识.面向对象结构.类.self.实例化对象 目录 Python面向对象01 /面向对象初识.面向对象结构.类.self.实例化对象 1. 面向对象初识 2. 面向 ...

  7. python 面向对象专题(一):面向对象初识、面向对象结构、类、self、实例化对象

    https://www.cnblogs.com/liubing8/p/11301344.html 目录 Python面向对象01 /面向对象初识.面向对象结构.类.self.实例化对象 1. 面向对象 ...

  8. python之面向对象初识

    一.面向对象初识 1.结构上 面向对象分成两部分:属性.方法 class A: name = 'xiaoming' # 静态属性.静态变量.静态字段. def func1(self): # 函数.动态 ...

  9. python基础(17)继承类和面向对象初识

    1.继承类 class Lm: money = 1000000 house = 5 def driver(self): print('会开车') class Mcb(Lm): def about_me ...

随机推荐

  1. 深度学习——RNN

    整理自: https://blog.csdn.net/woaidapaopao/article/details/77806273?locationnum=9&fps=1 原理 RNN.LSTM ...

  2. @RequestBody、@ResponseBody注解是如何将输入输出转换成json的

    @RequestBody.@ResponseBody注解,可以直接将输入解析成Json.将输出解析成Json,但HTTP 请求和响应是基于文本的,意味着浏览器和服务器通过交换原始文本进行通信,而这里其 ...

  3. 【39.87%】【BZOJ 1880】[Sdoi2009]Elaxia的路线

    Time Limit: 4 Sec  Memory Limit: 64 MB Submit: 1041  Solved: 415 [Submit][Status][Discuss] Descripti ...

  4. Jmeter配置元件——JDBC Connection Configuration参数化

    在昨天Jmeter配置元件——CSV DataSet Config参数化一文中,有提到,在参数化时,还可以使用JDBC Connection Configuration配置元件实现,具体如何实现,如何 ...

  5. 一篇文章带你了解 ZooKeeper 架构

    上一篇文章,我们讲解了 ZooKeeper 入门知识,这篇文章主要讲解下 ZooKeeper 的架构,理解 ZooKeeper 的架构可以帮助我们更好地设计协同服务. 首先我们来看下 ZooKeepe ...

  6. Django的安装命令

    国内的一些pipy镜像源: 1.清华源: https://pypi.tuna.tsinghua.edu.cn/simple 2.豆瓣源: https://pypi.douban.com/simple ...

  7. vue项目创建步骤 和 路由router知识点

    菜单快捷导航: vue项目创建 vue路由router知识点(路径参数.查询参数.命名路由.嵌套路由.命名视图.hash/history模式) 1.创建一个vue项目步骤 (windows环境下).创 ...

  8. 基础之Lamada和Stream的邂逅

    show me the code and take to me,做的出来更要说的明白 GitHub项目JavaHouse同步收录 喜欢就点个赞呗! 你的支持是我分享的动力! 引入 是否有遇到看不懂身边 ...

  9. Python socket套接字通信

    一.什么是socket? socket是一个模块, 又称套接字,用来封装 互联网协议(应用层以下的层). 二.为什么要有socket? socket可以实现互联网协议 应用层以下的层 的工作,提高开发 ...

  10. 【题解】P2521 [HAOI2011]防线修建(动态凸包)

    [题解]P2521 [HAOI2011]防线修建(动态凸包) 凸包是易插入不好删除的东西,按照剧情所以我们时光倒流 然后问题就是维护凸包的周长,支持加入 本来很简单,但是计算几何就是一些小地方经验不足 ...