什么是类

具有相似功能和属性的一类实物

什么是对象

类的具体体现,具体到一个

面向对象的优势

1.类是一组相似功能的集合,使组织结构更加清晰和规范化
2.研究面向对象要有上帝的思维,用面向对象设计程序,类是一种公共模板,对象去操作使用公共模板.

类的结构

class 类名(类名首字母大写):
变量部分:静态属性--静态字段--又叫属性
函数部分:动态属性--又叫方法

如何使用类

属性的操作

1.查看类的所有的内容,用__dict__,只能查看,不能操作,主要用于一次性查看所有内容

class Human:
    name = '人类是由名字的'
    mind = '人类是由思想的'
    def eat(self):
        print('人类是需要吃饭的')
    def work(self):
        print('人类都是需要工作的')
print(Human.__dict__)
打印结果:
{'__module__': '__main__', 'name': '人类是由名字的', 'mind': '人类是由思想的', 'eat': <function Human.eat at 0x000001B626B35048>, 'work': <function Human.work at 0x000001B626B350D0>, '__dict__': <attribute '__dict__' of 'Human' objects>, '__weakref__': <attribute '__weakref__' of 'Human' objects>, '__doc__': None}
2.万能的点 .
类对类的属性进行操作
1新增

Human.body_hair = 'timao' 
2.修改

Human.mind = '无脑子'
3.删除

del Human.mind

方法的操作

除去静态方法 类方法,一般不用类名去执行类的方法

对象如何使用
如何产生一个类的对象
类名() 这样就是产生了一个对象,
obj = 类名() 有以下三步的操作
1.产生一个obj的对象,并在内存中开辟了一个对象空间
2.自动执行类中的__init__方法,并将对象传给了self
3.执行__init__的代码给对象空间封装属性
class Human:
    name = '人类是由名字的'
    mind = '人类是由思想的'
    def __init__(self,name,age,sex):
        self.n = name
        self.s = sex
        self.a = age
    def eat(self):
        return'人类是需要吃饭的'
    def work(self):
        print('人类都是需要工作的')
obj = Human('wang',16,'nv') ##实例化一个对象
print(obj.__dict__)

对象的角度操作对象 类

1.查看对象里的所有的属性

print(obj.__dict__)
2.操作对象空间的属性,用万能的点

##增加
obj.height = 170
##删除
del obj.n
##单独修改某个属性的值
obj.s = '女'
##单独查看某个属性的值
print(obj.a)
print(obj.__dict__)
##3对象查看类中的静态属性,只能是查看!!!
print(obj.mind)
##尝试一下是否可以修改
obj.mind = '人类也有没思想的,麻木的'
print(obj.mind) #改变的只是obj里面的内容,并未改变类的内容
print(Human.mind)
#4.对象中调用类的方法
obj2 = Human('xingmengge',12,'nv')
print(obj.eat())
#只要对象执行类中的方法,就会将对象空间自动创给方法的第一个参数 self

Python基础-面向对象初识--类的更多相关文章

  1. Python基础之初识类和对象

    我们在前面学习了解了面向过程编程,接下来我们一起来学习一下面向对象编程.其实不管是面向过程,还是面向对 象,说白了就是一种编程方式而已.既然是面向对象编程,顾名思义,此编程方式的落地需要使用 “类” ...

  2. python基础-面向对象(类)

    类 类的定义 >>> class P: ...     pass ... >>> P <class __main__.P at 0x0000000001F4B ...

  3. python基础--面向对象基础(类与对象、对象之间的交互和组合、面向对象的命名空间、面向对象的三大特性等)

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

  4. python基础——使用元类

    python基础——使用元类 type() 动态语言和静态语言最大的不同,就是函数和类的定义,不是编译时定义的,而是运行时动态创建的. 比方说我们要定义一个Hello的class,就写一个hello. ...

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

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

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

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

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

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

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

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

  9. Python 基础 面向对象之二 三大特性

    Python 基础 面向对象之二 三大特性 上一篇主要介绍了Python中,面向对象的类和对象的定义及实例的简单应用,本篇继续接着上篇来谈,在这一篇中我们重点要谈及的内容有:Python 类的成员.成 ...

随机推荐

  1. redis 拒绝远程访问解决

    启动时报的警告: 1.Warning: no config file specified, using the default config. In order to specify a config ...

  2. net Core 2.0应用程序发布到IIS

    .net Core 2.0应用程序发布到IIS上注意事项   .net Core2.0应用程序发布window服务器报错容易错过的配置. 1.应用程序发布. 2.IIS上新建网站. 3.应用程序池选择 ...

  3. 牛客网Java刷题知识点之抽象类与接口

    不多说,直接上干货! 接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法. 抽象类与接口是Java语言中对抽象概念进行定义的两种机制,正是由于它们的存在才赋予java强大的面向对象的能力. ...

  4. java.lang.UnsupportedOperationException: setXIncludeAware is not supported on this JAXP implementation or earlier: class gnu.xml.dom.JAXPFactory的解决办法(图文详解)

    不多说,直接上干货! 问题详情 java.lang.UnsupportedOperationException: setXIncludeAware is not supported on this J ...

  5. 如何更改Android的默认虚拟机地址(Android virtual driver路径设置)

    1.将其他目录下的.android复制到C:\Documents and Settings\Administrator路径下(具体的用户名看自己的).然后进入.android\avd打开avd.ini ...

  6. 【转】说说Runnable与Callable

    说说Runnable与Callable   Callable接口:   Runnable接口: 相同点: 两者都是接口:(废话) 两者都可用来编写多线程程序: 两者都需要调用Thread.start( ...

  7. js监听页面的scroll事件,当移到底部时触发事件

    //页面拉到底时自动加载更多 $(window).scroll(function(event){ var wScrollY = window.scrollY; // 当前滚动条位置 var wInne ...

  8. C#字段声明部分如何调用该类中的方法进行初始化?

    问题描述: 有时,功能需求,需要在初始化字段时,需要视不同情况赋予不同字段值. 解决办法: 将方法设为static即可. e.g. public string str = SetStr(); publ ...

  9. 转 winfrom如何通过http来进行通信,并且通过传递json格式的数据可接受json格式的数据

    string username = this.textBox1.Text; string password = this.textBox2.Text; string AA = HttpUtility. ...

  10. HDU 4283 You Are the One (区间DP,经典)

    题意: 某校举行一场非诚勿扰,给定一个出场序列,表示n个人的屌丝值,如果他是第k个出场的,他的不满意度为(k-1)*diao[i].为了让所有人的屌丝值之和更小,导演设置一个栈,可以将部分人装进栈中, ...