day17面向对象和json总结和作业

这篇博客总结了Python中的面向对象特性,包括属性、继承的详细解释,并介绍了JSON数据格式及其与Python数据类型的相互转换。同时给出了课堂作业,涉及狗、人、矩形、二维点、圆和线段等类的设计。
摘要由CSDN通过智能技术生成

面向对象和json总结和作业

一、属性

  1. 属性

定义类就是用代码来描述清楚这个类拥有哪些相同功能和哪些相同属性的对象的集合,方法(函数)用来描述相同功能。属性(变量)用来描述相同属性。

属性分为两种:类属性、对象属性

1)类属性

a. 怎么定义:直接定义在类中的变量就是类属性

b. 怎么使用:通过 ‘类.’ 的方式去使用

c. 什么时候用:如果属性值不会因为对象不同而不一样的时候

2)对象属性

a. 怎么定义:以 ‘self.属性名=值’ 的方式定义在____init____方法中

b. 怎么使用:通过’对象.’ 的方式去调用

c. 什么时候用:如果属性值会因为对象不同而不一样的时候

class Student:
    # a是类属性
    a = 10

    # name和age是对象属性
    def __init__(self):
        self.name = '小明'
        self.age = 18


print(Student.a)
Student.a = 200
print(Student.a)

stu = Student()
print(stu.name, stu.age)
  1. 对象属性默认值

1)赋一个固定的值:每次创建对象的时候不能重新赋值,只能在创建好对象后修改属性的值

2)使用没有默认值的参数赋值

3)使用默认值的参数赋值

class Person:
    def __init__(self, name, age=18, gender='男'):
        self.name = name
        self.age = age
        self.gender = gender
        self.height = 170

    def __repr__(self):
        # return f'<name:{self.name}, age:{self.age}, gender:{self.gender}>'
        return str(self.__dict__)


p1 = Person('小明')
p2 = Person('张三', 20)
p3 = Person('小花', 22, '女')
print(p1)
print(p2)
print(p3)
  1. self的使用

self是谁调用就指向谁,所以在对象中可以直接将self当成对象来使用(这个类的对象能做的事情self都可以做)

# 练习:定义一个矩形类,有长和宽两个属性,有求面积和求周长两个方法
class Rect:
    def __init__(self, w, l):
        self.width = w
        self.length = l
        # self.area = w * l

    def get_area(self):
        # self = r1; self = r2
        return self.width * self.length         # return r1.width * r1*length; r2.with * r2.length

    def get_perimeter(self):
        return (self.width + self.length) * 2


r1 = Rect(10, 20)
r2 = Rect(10, 5)
print(r1.get_area())
print(r2.get_area())
  1. 方法的选择

对象方法:如果实现函数的功能需要对象(需要对象属性)就使用对象方法

类方法:在使用函数的功能不需要对象(或者对象属性)的前提下&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值