对象(Object)&类(class)&方法(method)

对象

1.对象的优点:

  1.多态:可以对不同类的多项进行相同的操作

    1.多态和方法:绑到对象特性上的函数称为方法(method)

    2.多态的多种形式:任何不知道对象的类型,但是需要对对象“做点什么“的时候就都会用到多态

  2.封装:对外部世界隐藏对象工作的细节

  3.继承:以通用的类为基础建立专门的类对象

 

类代表对象的集合

类的命名方法:驼峰命名发

  1. 将类名中的每个单词的首字母都大写,且不使用下划线

  2. 实例名与模块名都采用小写格式,并在单词间使用下划线

 1.创建类

  dog.py

--------------------------------------------------------------

  class Dog:

    """一次模拟小狗的简单尝试"""

    def _init_(self,name,age):

      """初始化属性name和age"""

      self.name = name

      self.age = age

      self.used = 123    # 类中的每个属性都必须有初始值,哪怕这个值是0或者空字符,在有些情况下,如设置默认值时,在方法_init_()内制定这种哦不能够初始值是可行的,若这样做了,就无需为它提供初始值的形参

 

 

    def sit(self):

      """模拟小狗被命令时蹲下"""

      print(self.name.title() + "is now sitting" +self.used+ ".")

 

 

    def roll_over(self):

      """模拟小狗被命令是打滚"""

      print(self.name.title + "rowed over!")

-------------------------------------------------------------------------------

    my_dog = Dog(while",3)   # 类的事列化,根据约定,在python中,我们通常认为首字母大写的名称为类,小写的名称值得是根据类创建哦事列.

    my_dog.sit()

------------------------------------------------------------------------------

2.修改属性的值

  1.直接通过事列进行修改

    class Dog:

      --snip--

    my_dog = Dog("lucy",6)

    my_dog.used = 456  #修改类的属性

    my_dog.sit()

  2.通过方法进行设置

    class Dog:

      --snip--

      def update_used(self,msl)

        self.used = msl

    my_dog = Dog("alxe",5)

    my_dog.update_used(789)

    my_dog.sit()

  ####可以对方法update_used()进行扩展,添加一些逻辑####

    class Dog:

      --snip--

      def update_used(self,msl)

        if msl >= self.used:    # 限制used属性只可以增大,不可以减小

          self.used = msl

        else:

          print("xxxxxooooo")

  3.通过方法进行递增

    class Dog:

      --snip--

      def update_used(self,msl)

        --snip--

      def zizeng(self,aa)

        self.used +=aa

    my_dog = Dog("eric",8)

    my_dog.sit()

 

    my_dog.update_used(888)

    my_dog.sit()

 

    my_dog.zizeng(100)

    my_dog.sit()

3.继承

  子类继承了父类的所有属性和方法,同时还可以自定义自己的属性和方法

 

方法

方法是储存在对象内部的函数,其与其他函数的区别在于:方法总是将对象作为自己的第一个参数

 

posted @ 2017-07-05 20:10  后盾  阅读(452)  评论(0编辑  收藏  举报