zoukankan      html  css  js  c++  java
  • Python之面向对象编程

    一、面向对象

    面对对象,对象中的数据和具体实现过程,可以不用看到。

    面对对象最重要的是“类”和“实例”,

    类:创建实例的模板,“实例:是一个具体的对象

    1.1 类

         类变量可以直接访问(例如:person.name)

         类函数不能直接访问,必须要给函数加@classmethod,变成类函数,才可以直接调用,类函数的第一个参数是cls。

         (例如:person.play())

    class person:
        name='default'#类变量
        age=0
        gender='male'
        weight=0
        def set_name(self,name):#类方法
            self.name=name#函数的参数赋给实例的变量
    
        def eat(self):
            print("eating")
    
        def play(self):
            print("playing")
    
        def jump(self):
            print("jumping")
    --------------------------------
    print(person.name)#类变量可以直接访问
    打印结果:
    default
    --------------------------------------------------------
    person.play()#类变量不能直接访问,需要加@classmethod,变成类函数,才能直接访问
    打印结果:
       person.play()#
    TypeError: play() missing 1 required positional argument: 'self'
    第二段代码:给类函数加@classmethd,变成类函数,可以直接访问
    class person:
        name='default'#类变量
        age=0
        gender='male'
        weight=0
        def set_name(self,name):#类方法
            self.name=name#函数的参数赋给实例的变量
    
        def eat(self):
            print("eating")
        @classmethod
        def play(self):
            print("playing")
    
        def jump(self):
            print("jumping")
    -------------------------------------------
    person.play()
    打印结果:
    playing

    1.2 实例

    类是一个模板,创建类时,可以将类必须有的属性初始化进去。然后每个实例都有这些属性,但具体属性的值可以不同。

    class person:
        # 实例化函数,第一个参数永远是self,指向实例本身
        #创建实例时,必须传入于__init__匹配的参数
        def __init__(self,name,age,score):
            self.name=name#将参数要赋值给实例的变量
            self.age=age
            self.score=score
    
        def eat(self):
            print(f"{self.name} is eating")
    
        @classmethod
        def play(self):
            print("playing")
    
        def jump(self):
            print("jumping")
    
        def get_score(self):
            if self.score>=90:
                return "A"
            elif self.score>=60:
                return "B"
            else:
                return "C"
    --------------------------------------------------------------
    lyh=person("balllyh",25,96)#实例化
    lyh.eat()#实例函数可以直接调用
    print(lyh.name)
    print(lyh.get_score())
    打印结果:
    balllyh is eating
    balllyh
    A
  • 相关阅读:
    Java Character类
    JavaMath&Number类
    oracle中创建数据库实例
    Jenkins安装和配置
    crontab计划 -计划任务和日志管理
    centos修改默认字符编码为GBK(服务器端java GBK字符乱码)
    使用vsphere client 克隆虚拟机
    建索引让SQL飞起来
    oracle中对LONG列进行查询
    优化sql,返回行数少情况下,NL比hash快好多
  • 原文地址:https://www.cnblogs.com/balllyh/p/15716888.html
Copyright © 2011-2022 走看看