为什么80%的码农都做不了架构师?>>>   

python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象。。。。。。

我们通过描述属性(特征)和行为来描述一个对象的。比如家里的小狗,它的颜色,大小,年龄,体重等是它的属性或特征。它会汪汪叫,会摇尾巴等是它的行为。

我们在描述一个真实对象(物体)时包括两个方面:

它可以做什么(行为)

它是什么样的(属性或特征)。

在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 = nameself.Age = ageself.Sex = sexdef 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
        # msg='my name is: ' +self.Name+ ","+ "my age is: " + str(self.Age) +','+ "my sex is:" +self.Sex
        return msg
shanghai=peo('shanghai','23','man')
# 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)
'''

转载于:https://my.oschina.net/kgjc/blog/601981

python类、对象、方法、属性之类与对象笔记相关推荐

  1. python定义一个dog类 类属性有名字毛色体重_全面了解python中的类,对象,方法,属性...

    python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性(特征)和行为来描述一个对象的.比如家里的小狗, ...

  2. PYTHON 类定义,属性,初始化

    文章目录 PYTHON 类定义,属性,初始化 类定义 类的私有属性 类方法 类的初始化和析构 初始化 析构 PYTHON 类定义,属性,初始化 为了代码的编写方便简洁,引入了类的定义: 一般,使用 c ...

  3. 实例对象的属性和原型对象中的属性重名问题 神奇的原型链 继承 继承案例

    实例对象的属性和原型对象中的属性重名问题 <!DOCTYPE html> <html lang="en"> <head><meta cha ...

  4. python类的方法中定义函数

    代码: class A():def run(self):def p():print('hello')p()a = A() a.run() 输出: hello 注意类中方法和普通函数的区别,python ...

  5. python类的方法三种访问权_Python基础33-面向对象(继承资源(属性与方法)的使用注意)...

    在Python中, 继承是指子类对父类资源的使用权 1 继承-属性与方法的使用权限 1.1 测试属性与方法分别如下 公有属性/方法 受保护属性/方法 私有属性/方法 class Animal: a = ...

  6. python类中的属性分为类属性和实例属性两种_python从入门到大神---1、初始化实例、类属性、方法...

    python从入门到大神---1.初始化实例.类属性.方法 一.总结 一句话总结: 方法不加括号是代码段:感觉python方法和js,php很类似,不加括号是代码段,加括号变成方法,比如f,f() 1 ...

  7. python类之间方法互相调用_Python中类与类之间属性和方法的调用

    Python中类与类之间属性和方法的调用 class A(object):  #定义一个类 name='python' #类属性 def __init__(self): #实例属性 self.age= ...

  8. python 类的特殊属性、特殊方法 __str__,__bases__,__mor__,__add__,__call__

    str 方法 class A():def __str__(self): # 重写__str__方法,功能:自动打印以下内容return "这是__str__方法" a = A() ...

  9. Python类的私有属性、私有方法、类方法

    一.类的私有属性 __private_attrs:两个下划线开头,声明该属性为私有 1.类的私有属性不能被类的实例直接访问,示例代码如下: class A:__secretCount = 0 # 私有 ...

  10. python类中的属性分为类属性和实例属性两种_python中类和实例如何绑定属性与方法示例详解...

    前言 python类与实例的方法的调用中觉得云里雾里,思考之后将自己的想法记录下,一来加深自己理解,巩固自己记忆,而来帮助一些想要学习python的朋友理解这门抽象的语言,由于Python是动态语言, ...

最新文章

  1. centos 桥接配置 设置网络代理 lnmp搭建
  2. Vijos1448题解---线段树+括号法
  3. JavaScript —从回调到异步/等待
  4. 链表的翻转(java)
  5. 【备忘】二叉树遍历的迭代实现
  6. eclipse 创建 javaWeb 项目 如何 配置 tomcat
  7. 强化学习——从最简单的开始入手
  8. 倒立摆matlab仿真,PID控制仿真,simulink仿真最简单版本(保姆级),一阶倒立摆,附源码
  9. 微信公众开发 表情开发php,微信开发Emoji表情的实例教程
  10. mapboxgl 互联网地图纠偏插件(一)
  11. Photoshop安装包破解安装教程
  12. 快速提升网站排名的七种方法
  13. 酷派手机锁屏壁纸提取
  14. 作文组装计算机,组装电脑作文200字
  15. 公告栏文本横向循环滚动
  16. 孤独者的自我救赎[自我的认知]
  17. Arun Gupta通过将HTML5与Java EE 7拥抱来提高生产力
  18. speedoffice如何在Word文档中输入美元符号
  19. PHP开发阿里云短信服务接口
  20. JAVA强制类型转换总结

热门文章

  1. 艾伟_转载:.NET 4.0中数组的新增功能
  2. Oralce null
  3. 检索出现次数的SQL语句
  4. 网络yum网址:http://mirrors.163.com/.help/
  5. [BZOJ 2002][Hnoi2010]Bounce 弹飞绵羊(分块)
  6. 定义文字用em、rem,效果和px一样
  7. MongoDB 数据分发
  8. android 开发 获取各种intent (图片、apk文件、excel、pdf等文件)
  9. 微软私有云分享(R2)1-自定义脚本
  10. [翻译]StructureMap 指南 – .NET中的依赖注入和控制反转