zoukankan      html  css  js  c++  java
  • 面向对象和类

    python开发软件的编程思想是:面向对象。

    面向对象程序设计(英语:Object-oriented programming,缩写:OOP)是一种程序设计范型,同时也是一种程序开发的方法。对象指的是类的实例。

    优点:解决了程序的扩展性。

    缺点:可控性差,面向对象的程序一旦开始就由对象之间的交互解决问题,即便是上帝也无法预测最终结果。

    面向对象的程序设计并不是软件开发的全部。对于一个软件质量来说,面向对象的程序设计只是用来解决扩展性。

    一、类和对象:

     属性和方法的结合就是对象,类就是从一对对象中抽象出的属性和函数。

    python3中,统一了类型和类,统一为类。

    python3中所有的都是新式类;只有python2中才分经典类和新式类。

    写一个类,定义一个“人”的类

     1 class People:
     2     """这是解释文档"""
     3     coutry = "china"
     4 
     5     def __init__(self,name,company):
     6         self.name = name
     7         self.company = company
     8     def walk(self):
     9         print("%s is walking"%self)
    10 
    11 p1 = People("kyle","Tec") #实例化
    12 
    13 print(People.__bases__) #类的所有父类
    14 print(People.__name__) #类的名字(字符串)
    15 print(People.__dict__) #类的字典属性,存放了名称空间,寻找调用的属性
    16 print(People.__doc__)#类的文档字符串
    17 print(People.__module__)#类定义所在的模块
    18 
    19 print(p1.__module__) #实例所在模块
    20 print(p1.__class__)#实例对应的类
    21 print(p1.__dict__)#实例的名称空间
    22 print(p1.__doc__)#实例对应类的描述文档
    1 (<class 'object'>,)
    2 People
    3 {'__module__': '__main__', '__doc__': '这是解释文档', 'coutry': 'china', '__init__': <function People.__init__ at 0x109c5c840>, 'walk': <function People.walk at 0x109c5c7b8>, '__dict__': <attribute '__dict__' of 'People' objects>, '__weakref__': <attribute '__weakref__' of 'People' objects>}
    4 这是解释文档
    5 __main__
    6 __main__
    7 <class '__main__.People'>
    8 {'name': 'kyle', 'company': 'Tec'}
    9 这是解释文档

    有两个作用:实例化和属性引用

    对象只有一个作用:属性引用 

    对象/实例本身只有数据属性,但是python的class机制会将类的函数绑定到对象上,称为对象的方法,或者叫绑定方法,绑定方法唯一绑定一个对象,同一个类的方法绑定到不同的对象上,属于不同的方法,内存地址都不会一样

  • 相关阅读:
    lusernews python写的类HN网站 | Python China
    找一个可以@user的gem。
    Language modeling meets inference networks
    play!framework,新一代ROR风格的fullstack framework
    少了unicontools是不行滴
    用纯CSS3绘制萌系漫画人物动态头像
    C#获取当前程序运行路径的方法集合
    LINQ简记(2):重要概念
    程序员新年要实现的10个愿望
    LINQ简记(1):基本语法
  • 原文地址:https://www.cnblogs.com/greatkyle/p/6734080.html
Copyright © 2011-2022 走看看