python 6_面向对象

python 6_面向对象

1. 初识对象

在程序中是可以做到和生活中那样,设计表格、生产表格、填写表格的组织形式的

  1. 在程序中设计表格,我们称之为 设计类

    class Student:
        name = None			# 创建Student类,记录学生姓名
    
  2. 在程序中打印生产表格,我们称之为 创建对象

    stu_1 = Student()
    stu_2 = Student()		# 基于类创建对象
    
  3. 在程序中填写表格,我们称之为 对象属性赋值

    stu_1.name = "ausgelebt"
    stu_2.name = "董二千"			# 为对象赋予名称属性值
    

2. 成员方法

  • 类的定义和使用

    • 类的定义

      class className:		# class是关键字,表示要定义类
          类的属性			 # 类的属性,定义在类中的变量(成员变量)
          类的行为			 # 类的行为,定义在类中的函数(成员方法)
      
    • 类的使用:对象 = 类名称()

  • 成员方法

    • 在类中定义成员方法和定义函数基本一致

      def 方法名(self, 形参1, ......, 形参n):
          方法体
      
    • 但仍有细微差别:self关键字(成员方法定义的时候必须填写)

      • 用来表示类对象本身的意思
      • 当我们使用类对象调用方法的是,self会自动被python传入
      • 在方法内部,想要访问类的成员变量,必须使用self
      • self关键字,尽管在参数列表中,但是传参的时候可以忽略它
  • 示例

    class Student:
        name = None
        gender = 1
        nationality = None
        native_place = None
        age = 20
        def say_hello(self):
            print("hello, i am {}".format(self.name))
    
        def say_hello2(self, s):
            print(s)
    
    stu = Student()
    stu.name = "ausgelebt"
    
    print(stu)
    print(stu.name)
    stu.say_hello()
    stu.say_hello2("hello")
    

    image-20240415090347648

3. 类和对象

类只是一种程序内的“设计图纸”,需要基于图纸生产实体(对象),才能正常工作

这就是面向对象编程:设计类,基于类创建对象,由对象做具体的工作

4. 构造方法

  • 构造方法_ _ init _ _()

    • 在创建类对象(构造类)的时候,会自动执行
    • 在创建类对象(构造类)的时候,将传入参数自动传递给构造方法使用
  • 注意事项

    • 构造方法也是成员方法,也需要有self关键字
    • 在构造方法内定义成员变量,需要用到self关键字
  • 示例

    class Student:
        name = None
        age = None
        address = None
        def __init__(self, name, age, address):
            self.name = name
            self.age = age
            self.address = address
    
    for i in range(1, 4):
        print("当前录入第{}位学生信息,总共需录入3位学生信息".format(i))
        name = input("请输入学生姓名:")
        age = input("请输入学生年龄:")
        address = input("请输入学生地址:")
        stu = Student(name, age, address)
        print("学生{}信息录入完成,信息为:姓名:{},年龄:{},地址:{}".format(i, stu.name, stu.age, stu.address))
    

    image-20240415094340156

5. 其它内置方法

内置的类方法,各自有各自特殊的功能,这些内置方法称之为魔术方法

方法 功能
__ init __ 构造方法,可用于创建类对象的时候设置初始化行为
__ str __ 用于实现类对象转字符串的行为
__ lt __ 用于2个类对象进行小于或者大于比较
__ le __ 用于2个类对象进行小于等于或者大于等于比较
__ eq __ 用于2个类对象进行相等比较
  • _ _ str_ _字符串方法

    • 控制类转换为字符串

    • 返回值为字符串,内容自行定义

    • 示例:

      class Student:
          name = None
          age = None
          address = None
          def __init__(self, name, age, address):
              self.name = name
              self.age = age
              self.address = address
      
      stu = Student('ausgelebt', 20, 'JiLin')
      print(stu)
      

      image-20240415095831551

      class Student:
          name = None
          age = None
          address = None
          def __init__(self, name, age, address):
              self.name = name
              self.age = age
              self.address = address
          def __str__(self):
              return "name = {}, age = {}, address = {}".format(self.name, self.age, self.address)
      
      stu = Student('ausgelebt', 20, 'JiLin')
      print(stu
  • 11
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值