【python学习】——编程的两大思想:面向过程和对象

一、两大编程思想

面向对象和面向过程,一个是宏观上的,一个是微观的

二、类和对象的创建

1、类:
  • 类别,分门别类,物以类聚。类是多个事物组成的群体的统称,能够帮助我们快速理解和判断事物的性质。
2、数据类型

(1)不同的数据类型属于不同类
(2)使用内置函数查看数据类型

print(type(100))
print(type(99))
print(type(520))
3、对象
100、99、520都是int类之下包含的相似的不同个例,这个个例专业术语称为实例或对象
python中一切皆对象(dict tuple list int 1 'world' 等等)
4、创建类的语法
class Student:#Student是类名,有一个或多个单词组成,每个单词的首字母大写,其余小写
    pass
#python中一切皆对象,Student是对象吗?内存有开空间吗?答案均是肯定的
print(id(Student))
print(type(Student))
print(Student)

类的组成

  • 类属性
  • 实例方法
  • 静态方法
  • 类方法
class Student:
    city='安徽'#直接写在类里的变量,称为类属性

    def __init__(self,name,age):
        self.name=name  #self.name称为实体属性,进行了一个赋值操作,将局部变量的name的值赋给实例属性
        self.age=age

    #实例方法
    def eat(self):#self肯定要有
        print("刚刚吃了好吃的")

    #静态方法
    @staticmethod
    def method():#静态方法里面不要加self
        print('我使用了@staticmethod静态方法进行修饰,所以我是静态方法')

    @classmethod
    def cm(cls):
        print("我是类方法,我使用了@classmethod进行修饰")
#上面这个def有点类似前面学的函数,但是在这里上面def表示的是方法
#因为在类之外定义的称为函数,在类之内定义的称为方法,下面的def是函数
def drink(self):
    print("刚刚喝了饮料")
5、对象的创建
  • 对象的创建又称为类的实例化
  • 语法:
    实例名=类名()
  • 意义:有了实例,就可以调用类中的内容
class Student:
    city='安徽'

    def __init__(self,name,age):
        self.name=name 
        self.age=age

    def eat(self):
        print("刚刚吃了好吃的")

    @staticmethod
    def method():
        print('我使用了@staticmethod静态方法进行修饰,所以我是静态方法')

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

def drink(self):
    print("刚刚喝了饮料")

#创建Student类的对象
stu1=Student('李女士',18)
stu1.eat()
print(stu1.name)
print(stu1.age)

Student.eat(stu1)

三、类对象与类属性

  • 类属性:类方法外的变量称为类属性,被该类的所有对象所共享
  • 类方法:使用@classmethod修饰的方法,使用类名直接访问的方法
  • 静态方法:使用@staticmethod修饰的方法,使用类名直接访问的方法
class Student:
#这里的city就是类属性,它是在所有类方法之外
    city='安徽'

    def __init__(self,name,age):
        self.name=name 
        self.age=age

    def eat(self):
        print("刚刚吃了好吃的")

    @staticmethod
    def method():
        print('我使用了@staticmethod静态方法进行修饰,所以我是静态方法')

    @classmethod
    def cm(cls):
        print("我是类方法,我使用了@classmethod进行修饰")
        
print(Student.city) #访问类属性
Student.cm()		#调用类方法
Student.method		#调用静态方法

四、类方法与静态方法

动态绑定属性和方法

python是动态语言,在创建对象之后,可以动态的绑定属性和方法

1、动态绑定属性
class Student:
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def eat(self):
        print("中午吃了红烧肉")

stu1=Student("小红",5)
stu2=Student("小明",9)
#为stu1动态绑定性别属性
stu1.gender="女"
print(stu1.name,stu1.age,stu1.gender)
print(stu2.name,stu2.age)
——>小红 5 女
——>小明 9

2、动态绑定方法
stu1.eat()
stu2.eat()
——>小红中午吃了红烧肉
——>小明中午吃了红烧肉

def show():
    print("定义在类之外,称函数")
stu1.show=show#这个过程就是动态绑定方法
stu1.show()
——>定义在类之外,称函数

你可能感兴趣的:(python语法学习,python,学习,开发语言)