编程思想
1.两大编程思想
- 编程界的两大阵营
面向对象和面向过程,一个是宏观上的,一个是微观上。
2.类和对象的创建
-
类是多个类似事物组成的群体的统称,能够帮我们快速理解和判断事务的性质
-
数据类型
-
不同的数据类型属于不同的类
-
使用内置函数查看数据类型
print(type(100)) print(type(99))
-
-
对象
- 100、99都是int类之下包含的相似的不同个例,这个个例专业术语称为实例或对象
- 创建类的语法
class Student: #Student为类名,由一个或多个单词组成,每个单词的首字母大写,其余小写
pass
#python中一切及对象那Student是对象吗?内存开空间吗?
print(id(Student))
print(type(Student))
print(Student)
输出:
2272969161184
<class ‘type’>
<class ‘main.Student’>
- 类的组成
- 类属性
- 实例方法
- 静态方法
- 类方法
class Student:
native_pace='吉林' #直接写在类里的属性,成为类属性
def __init__(self,name,age):
self.name=name #self.name 称为实体属性,进行了一个赋值的操作,将局部变量的name的值付给实体属性
self.age=age
#实例方法
def eat(self):
print('学生在吃饭···')
#静态方法
@staticmethod
def method():
print('我使用了stasticmethod进行修饰,所以我是静态方法')
#类方法
@classmethod
def cm(cls):
print('我使用了classmethod进行修饰,所以我是类方法')
#在类之外定义的称为函数,在类之内定义的称为方法
def drink():
print('喝水')
-
对象的创建
- 对象的创建又称为类的实例化
-
语法
实例名=类名()
-
例子
class Student: native_pace='吉林' #直接写在类里的属性,成为类属性 def __init__(self,name,age): self.name=name #self.name 称为实体属性,进行了一个赋值的操作,将局部变量的name的值付给实体属性 self.age=age #实例方法 def eat(self): print('学生在吃饭···') #静态方法 @staticmethod def method(): print('我使用了stasticmethod进行修饰,所以我是静态方法') #类方法 @classmethod def cm(cls): print('我使用了classmethod进行修饰,所以我是类方法') #在类之外定义的称为函数,在类之内定义的称为方法 def drink(): print('喝水') #创建Student类的对象 stu1=Studnet('张三',20) stu1.eat() print(stu1.name) print(stu1.age) Student.eat(stu1)
-
意义:有了实例,就可以调用类中的内容
3.类对象与类属性
-
类属性:类中方法外的变量称为类属性,被该类的所有对象所共享
-
类方法:使用@classmethod修饰的方法,使用类名直接访问的方法
-
静态方法:使用@staticmethod修饰的方法,使用类名直接访问的方法
class Student: native_pace='吉林' #直接写在类里的属性,成为类属性 def __init__(self,name,age): self.name=name #self.name 称为实体属性,进行了一个赋值的操作,将局部变量的name的值付给实体属性 self.age=age #实例方法 def eat(self): print('学生在吃饭···') #静态方法 @staticmethod def method(): print('我使用了stasticmethod进行修饰,所以我是静态方法') #类方法 @classmethod def cm(cls): print('我使用了classmethod进行修饰,所以我是类方法') #类属性的使用方式 #print(Student.native_pace) stu1=Student('张三',20) stu2=Student('李四',30) print(stu1.native_pace) print(stu2.native_pace) Student.native_pace='天津' print(stu1.native_pace) print(stu2.native_pace) #类方法的使用方式 Student.cm() #调用静态方法 Student.method()
输出:
吉林
吉林
天津
天津
我使用了classmethod进行修饰,所以我是类方法
我使用了stasticmethod进行修饰,所以我是静态方法
4.类方法与静态方法
动态绑定属性和方法
-
Python是动态语言,在创建对象后,可以动态的绑定属性和方法
#1.动态绑定属性 class Student: def __init__(self,naame,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() #输出:定义在类之外,称函数