084 类和对象

基于面向对象编程的思想编写程序,就好比是在创造一个世界,你就是这个世界的上帝,是一种上帝式的思维方式。

  • 优点:可扩展性强
  • 缺点:编程的复杂度要高于面向过程

一、类和对象

只要是面向对象的编程语言都有类和对象。那什么是类和对象呢?

1.1 什么是类和对象

类:种类、类别。

  • 类:一系列共同的属性方法

对象:类的具体实例化

  • 对象:属性方法的结合体

现实生活中:先有对象再有类
程序中:先有类再有对象

1.2 定义类

定义类(类名建议用驼峰命名)class关键字 类名:

class Student:
    #变量表示属性
    school='xxx'
    def choose(self):
        print("选课....")
    def study(self):
        print('学习'

1.3 生成对象

类加括号,生成对象 对象=类名()

stu1=Student()

通过,获取属性和方法 通过 . 获取

print(stu1.school)
print(stu1.choose)

二、类

1 获取类的属性和方法

  1. 查看类的所有属性和方法可以通过 类.__dict__
#查看类中的属性和方法
print(Student.__dict__)
print(Student.__dict__['school'])   # 查看类中属性
print(Student.__dict__['choose'])   # 查看类中方法的内存地址
Student.__dict__['choose'](123)     # 调用类中方法

{'module': 'main', 'school': 'oldboy', 'choose': <function Student.choose at 0x000001FAC00ADEA0>, 'study': <function Student.study at 0x000001FACEFE28C8>, 'dict': <attribute 'dict' of 'Student' objects>, 'weakref': <attribute 'weakref' of 'Student' objects>, 'doc': None}
xxx
<function Student.choose at 0x000001FAC00ADEA0>
选课....

2 类来调用属性和方法

  1. 通过dict来取(复杂,不用)
  2. 类名.属性/函数

三、对象

1 对象获取属性和方法

  1. 查看对象的所有属性和方法可以通过 对象.__dict__
stu1=Student()
print(stu1.__dict__)
print(stu1.school)

{}
xxx

2 对象来调用属性和方法

  1. 对象调用内部属性和方法,第一个参数不用传 对象.属性/方法
class Student:
    #变量表示属性
    school='xxx'
    def choose(self):
        print("选课....")
    def study(self):
        print('学习')
        
#对象来调用方法,第一个参数不用传
stu2=Student()
print(stu2.school)
print(stu2.choose)

xxx
<bound method Student.choose of <main.Student object at 0x00000189178C0B00>>

补充:方法和函数

方法是类的所属方法。是类的绑定方法

函数是单独定义的函数。

猜你喜欢

转载自www.cnblogs.com/XuChengNotes/p/11413174.html