zoukankan      html  css  js  c++  java
  • 初识python面向对象

    一、初识python面向对象:

    class Person: #使用class关键字定义一个类
      age=0 #类变量(静态变量)
      def eat(self,food): #定义一个方法
        self.age=5 #self是实例本身,self.age是实例变量
        print("I will eat %s" %food)

    xiaofan=Person() #实例化,生成对象xiaofan
    print(xiaofan.age) #调用对象方法,因为还没有调用eat方法,则使用类方法的值
    xiaofan.eat("apple") #调用对象方法
    print(xiaofan.age) #调用对象,此时调用了eat,则age的值改变了
    print(Person.age) #调用类的方法

    """

    0
    I will eat apple
    5
    0

    """

     #在python 的面向对象当中,类和实例以及实例和实例之间都是拥有独立的内存空间的.

    #class 是我们定义类的关键字
    #Person 是我们定义类的名称
    #() 继承,如果没有继承对象,我们可以吧括号省略掉

    #类是对事物的划分,我们使用的是类的实例
    #所以我们调用类又叫做类的实例化
    #在实例化的过程当中,括号的作用是传参
    #类名加上括号就是实例化

    二、

    构造函数:(初始化函数 __init__)

    class Person:
      def __init__(self,food):      #实例化时就被执行了
        self.age=0                       

        print("hello !!!")      

        print("I will eat %s" %food)          
      def eat(self,food):
        self.age=3
        print("I will eat %s" %food)

    xiaofan=Person(milk)
    print(xiaofan.age)
    xiaofan.eat("rice")
    print(xiaofan.age)

    """

    hello !!!
    I will eat milk
    0
    I will eat rice
    3

    #1、构造函数是指类实例化之后自动执行的
    #2、构造函数传参需要在实例化的过程中在类的括号当中传
    #3、构造函数必须没有返回值

    """

    析构函数:实例被删除时执行

    class Person:
      def __init__(self):
        print("hello world")
      def __del__(self):
        print("goodbye world")

    xiaofan = Person()
    del xiaofan

    """

    hello world
    goodbye world

    """

    三、

    #如果实例变量有定义,那么实例变量采用自己的值
    #如果实例变量没有定义,那么采用类变量的值
    #如果类变量也没有定义,那么报错
    #但是实例变量无法对其他实例的实例变量产生影响
    #也不能对类变量产生影响

  • 相关阅读:
    关于总线的总结
    我已经理解了并发和并行的区别
    关于CPU的一些基本知识总结
    shell生成指定长度的随机数
    进程、线程、协程、例程、过程的区别是什么?
    Perl输出带颜色行号或普通输出行
    Ruby数组(2):数组方法详细整理
    Linux find常用用法示例
    MariaDB官方手册翻译
    Ruby中to_s和to_str、to_i和to_int、to_a和to_ary、to_h和to_hash的解释说明
  • 原文地址:https://www.cnblogs.com/fanxuanhui-linux/p/5928866.html
Copyright © 2011-2022 走看看