面向对象

一、类和对象

1、类:是多个类别事物组成的群体的统称。能够帮助我们快速理解和判断事物的性质

2、数据类型

  • 不同的数据类型属于不同的类
  • 使用内置函数查看数据类型
print(type(100))   #<class 'int'>
print(type('abc')) #<class 'str'>

3、对象:100、99、250都是int类之下包含的相似的不同个体,这个个例专业数语称为实例或对象

二、类的创建

1、创建类的语法

class Student: #student为类的名称。类名可以由一个或多个单词组成,每个单词的首字母大写,其余小写
    pass
#python中一切皆对象,Student是对象,可以看到内存有开辟空间
print(id(Student))  #2348245390768
print(type(Student))#<class 'type'>
print(Student)      #<class '__main__.Student'>

2、类的组成

  • 类属性
  • 实例方法
  • 静态方法
  • 类方法
class Student:
    native_pace='wuhan' #直接写在类里的变量,称为类属性
    #初始化函数
    def __init__(self,name,age):
        self.name=name  #self.name称为实体属性,进行了一个赋值操作,将局部变量的name值赋给实体属性
        self.age=age

    #实例方法
    #在类之外定义的称为函数,在类之内定义的称为方法
    def eat(self):
        print('学生在吃饭...')

    #静态方法
    @staticmethod
    def method():#括号中是不允许写self的
        print('我使用了staticmethod进行修饰,所以我是静态方法')

    #类方法
    @classmethod
    def cm(cls):
        print('我是类方法,因为我使用了classmethod进行修饰')

三、对象的创建

对象的创建又称为类的实例化

语法       实例名=类名()

#创建Student类的对象
stu1=Student('张三',85)
print(stu1.name)
print(stu1.age)
stu1.eat()       #对象名.方法名()

print('-----------------')

Student.eat(stu1)#方法调用可以使用  类名.方法名(类的对象)

四、类的组成

  • 类属性:类中方法外的变量称为类属性,被该类的所有对象所访问
  • 类方法:使用@classmethod修饰的方法,使用类名直接访问的方法
  • 静态方法:使用@staticmethod修饰的方法,使用类名直接访问的方法
#类属性的使用
stu1=Student('张三',20)
stu2=Student('李四',50)
print(stu1.native_pace)
print(stu2.native_pace)
Student.native_pace='武汉'
print(stu1.native_pace)
print(stu2.native_pace)
#类方法的使用
Student.cm()
#静态方法的使用
Student.method()
#实例方法
stu1.eat()
Student.eat(stu1)

运算结果:

Wuhan
Wuhan
武汉
武汉
我使用了类方法
我使用了静态方法
学生在吃饭
学生在吃饭

  

原文地址:https://www.cnblogs.com/xiaoqing-ing/p/14988282.html