在python中,一个对象的特征也称为属性(attribute)。它所具有的行为也称为方法(method)

结论:对象=属性+方法

在python中,把具有相同属性和方法的对象归为一个类(class)

比如人类,动物,植物等等,这些都是类的概念。

类是对象的模板或蓝图,类是对象的抽象化,对象是类的实例化。类不代表具体的事物,而对象表示具体的事物。

>>> class people:

...     def speak(self):

...             print ("hello!")

...
''' 定义一个people类,定义一个speak方法,但没有定义属性, 因为属性不属于类,而是属于各个类的实例。也就是说属于对象。 因此我们可以给每个实例设置不同的属性 '''

>>>  class people:                    #类

...     def speak(self):            #方法

...             print ("hello!")

...

>>> 
>>> jack = people()    #创建jack实例

>>> tom = people()    #创建tom实例

>>> import tab        #导入table键功能模块

>>> jack.            #输入jack.<tab键>,可以看到以下方法

jack.__class__   jack.__doc__     jack.__module__  jack.speak()

>>> jack.speak()    #引用speak方法 hello!
>>> jack.age=39            #添加age属性

>>> jack.height=120        #添加height属性

>>> jack. jack.__class__   jack.__module__  jack.height       jack.__doc__     jack.age         jack.speak()

>>> jack.height 120

>>> jack.age 39
'''

#初始化对象 创建类时,可以定义一个特定的方法,名为__init__(),只要创建这个类的一个实例 就会运行这个方法。

可以向__init__()方法传递参数, 这样创建对象时就可以把属性设置为你希望的值 __init__()这个方法会在创建对象时完成初始化,
'''

>>>  class peo:

...     def __init__(self,name,age,sex):

...             self.Name = name

...             self.Age = age

...             self.Sex = sex

...     def speak(self):

...             print "my name" + self.Name

...

>>>  实例化这个类的对象时:

>>> zhangsan=peo("zhangsan",24,'man')

>>> print zhangsan.Age 24

>>> print zhangsan.Name zhangsan

>>> print zhangsan.Sex man   # ----------

>>> print zhangsan < __main__.peo instance at 0x7fe5041ec248>

'''

要让print能打印出来,就得使用__str__方法 __str__()这个方法告诉python在打印(print)一个对象时,具体显示什么内容

'''

#! /usr/bin/python class peo:

def __init__(self,name,age,sex):

self.Name = name

self.Age = age

self.Sex = sex

def speak(self):

print "my name" + self.Name

def __str__(self):

msg='my name is: ' +self.Name+ ","+ "my age is: " + self.Age +','+ "my sex is:" +self.Sex

return msg

shanghai=peo('shanghai','23','man')

''' msg='my name is: ' +self.Name+ ","+ "my age is: " + self.Age +','+ "my sex is:" +self.Sex

此处23是年龄,但被转成了字符串,因为self.Age定义的是字符串     如果不将23转义,则会报错     如果希望在程序中就事先转义,需要使用str(self.Age) '''

print shanghai

''' 之前多次用到self这个形参

类就好比是一张蓝图,使用一个类可以创建多个对象实例, speak()方法在被调用时,必须知道是哪个对象调用了它.

这里self参数就会告诉方法是哪个对象来调用的.这称为实例引用。 zhangsan.speak()就好比写成了peo.speak(zhangsan) '''

__author__ = Kayson

python 类、对象、方法、属性的更多相关文章

  1. 全面了解python中的类,对象,方法,属性

    全面了解python中的类,对象,方法,属性 python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性( ...

  2. Python 类的私有属性与私有方法

    1.隐藏的使用场景 在Python类中,有些属性和方法只希望在对象的内部被使用,而不希望在外部被访问到, 2.定义方式, 在属性名或方法名前增加两个下划线,定义的就是私有属性或方法 #其实这仅仅这是一 ...

  3. 福利->KVC+Runtime获取类/对象的属性/成员变量/方法/协议并实现字典转模型

    我们知道,KVC+Runtime可以做非常多的事情.有了这个,我们可以实现很多的效果. 这里来个福利,利用KVC+Runtime获取类/对象的所有成员变量.属性.方法及协议: 并利用它来实现字典转模型 ...

  4. python类及其方法

    python类及其方法 一.介绍 在 Python 中,面向对象编程主要有两个主题,就是类和类实例类与实例:类与实例相互关联着:类是对象的定义,而实例是"真正的实物",它存放了类中 ...

  5. python—类对象和实例对象的区别

    最近在对RF的通讯层的模块进行封装,需要将之前放在类似main里面的一个方法,如下所示:这段代码是开发提供,用于接口测试,模拟底层通讯,具体的通讯是在dll内,python这边只是做了个封装让RF进行 ...

  6. Python类对象

    python类对象 python类对象支持两种操作:属性引用和实例化. 属性引用 使用 Python 中所有属性引用所使用的标准语法: obj.name. 有效的属性名称是类对象被创建时存在于类命名空 ...

  7. Django---CBV和FBV的使用,CBV的流程,给视图加装饰器,Request对象方法,属性和Response对象,form表单的上传

    Django---CBV和FBV的使用,CBV的流程,给视图加装饰器,Request请求对象方法,属性和Response响应对象,form表单的上传 一丶CBV和FBV       在Django中存 ...

  8. WPFS数据绑定(要是后台类对象的属性值发生改变,通知在“client界面与之绑定的控件值”也发生改变须要实现INotitypropertyChanged接口)

    WPFS数据绑定(要是后台类对象的属性值发生改变,通知在"client界面与之绑定的控件值"也发生改变须要实现INotitypropertyChanged接口) MainWindo ...

  9. Python之对象的属性

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #Python之对象的属性 #http://python.jobbole.com/82622/ #对象的属性 ...

  10. python 学习笔记7(类/对象的属性;特性,__getattr__)

    27. 属性的__dict__系统 1)对象的属性可能来自: 其类的定义,叫做类属性 继承父类的定义 该对象实例定义(初始化对象时赋值),叫做对象属性 2)对象的属性存储在对象的 __dict__ 属 ...

随机推荐

  1. :after和:before的作用及使用方法

    1.  :before 和 :after 的主要作用是在元素内容前后加上指定内容,示例: HTML代码: <p>你好</p> CSS代码: p:before{ content: ...

  2. javascript创建文档碎片节点

    在<javascript高级程序设计>一书的6.3.5:创建和操作节点一节中,介绍了几种动态创建html节点的方法,其中有以下几种常见方法: · crateAttribute(name): ...

  3. idea中配置eslint 静态代码检查

    配置: 1,安装依赖 sudo tnpm install eslint -g sudo tnpm install eslint-plugin-import -g sudo tnpm install e ...

  4. eclipse下的,maven+spring+springMVC+mabatis+mysql.创建

    环境:window系统,64位工具:eclipse:下载地址:            链接:http://pan.baidu.com/s/1hr73LE8 密码:vcsa        tomcat: ...

  5. 个人评测——K米

    K米APP案例分析 关于 K米 -- 的案例分析 产品 K米的APP (全国KTV点歌,手机直播,互动,交友,预订)的Android客户端 第一部分 调研,评测 评测: 软件的bug,功能评测,黑箱测 ...

  6. shell下>和>>的区别

    >  :如果文件不存在,同上,如果文件存在,先将文件清空,然后将数据填入此文件 >> :如果文件不存在,将创建新的文件,并将数据送至此文件:如果文件存在,则将数据添加在文件后面

  7. swift_初始化器的使用

    //: Playground - noun: a place where people can play import Cocoa ***************************结构体与Cla ...

  8. Starting MySQL... ERROR! The server quit without updating PID file 解决办法

    来源:http://blog.rekfan.com/articles/186.html 我使用了第4条解决了问题 1.可能是/usr/local/mysql/data/rekfan.pid文件没有写的 ...

  9. beat your own python env

    1,进入根目录,修改.bashrc,增加一个PATH目录 例如:alias cjtf='export PATH=/home/www/xxx/python_env:$PATH' 如果个人的机器的就不用a ...

  10. Application.Run()和Form.Show()以及Form.ShowDialog()

    ShowDialog()弹出模式化的窗体 Show()弹出非模式化的窗体 模式窗体,在关闭或隐藏前无法切换到主窗体. 非模式窗体,变换焦点使不必关闭窗体 总结:显示重要的信息,还是用模式窗体,如删除文 ...