2023-09-09
Python
00

目录

两大编程思想
类和对象的创建
类的创建
对象的创建
类属性、类方法与静态方法

两大编程思想

编程语言分为 面向过程面向对象 两种

面向过程 面向对象
区别 事务比较简单,可以用线性的思维去解决 事务比较复杂,使用简单的线性思维无法解决
共同点 面向过程和面向对象都是解决实际问题的一种思维方式
二者相辅相成,并不是对立的
解决复杂问题,通过面向对象方式便于我们从宏观上把握事物之间的复杂关系,方便我们分析整个系统:具体到微观操作,仍然使用面向过程方式来处理

类和对象的创建

类是多个类似事物组成的群体的统称。能够帮助我们快速理解和判断事物的性质,不同的 数据类型 属于不同的 。int类之下包含相似的不同个例,这个个例专业属于就是 实例对象。python中的一切皆对象。

python
print(type(25)) # <class 'int'> 这些都属于int类,类里面的数值25,97,356这些称为对象或者实例 print(type(97)) # <class 'int'> print(type(356)) # <class 'int'>

类的创建

类是由 类属性实例方法静态方法类方法 组成。

python
class Student: # Student为类的名称(类名),由一个单词或多个单词组成,规范:每个单词的首字母大写,其余的小写, native_pace='北京' # 直接写在类里的变量,称为类属性。 def __init__(self,name,age): # 初始化方法 也叫 构造方法 self.name=name # self.name称为实例属性,进行了赋值操作,将局部变量的name的值赋值给实例属性 self.age=age def info(self): # 实例方法 在类之外定义的称为函数,在类之内定义的称为方法 print('我叫',self.name,'年龄是',self.age) @staticmethod # 静态方法 def method(): # 在静态方法里不允许使用self print('我使用了@staticmethod修饰,所以我是静态方法') @classmethod # 类方法 def cm(cls): print('我是类方法,因为我使用了classmethod进行修饰') print(id(Student)) # 类对象 这个是Student类的地址 print(type(Student)) print(Student)

对象的创建

对象的创建又称为类的实例化,有了实例,就可以调用类中的内容。语法是 实例名=类名()

python
# 上面已经创建好Student类,现在创建Student类的对象 stu1=Student('张三',23) print(id(stu1)) # 实例对象 这个是Student类型的对象的地址 print(type(stu1)) print(stu1) # 输出对象值的时候,实际输出的是对象的十六进制的内存地址 stu1.info() # 第一种调用方式:对象名.方法名() print(stu1.name) # 可以调用实例属性 print(stu1.age) Student.info(stu1) # 第二种调用方式:类名.方法名(类的对象) 类的对象就是方法定义处的self

类属性、类方法与静态方法

  • 类属性:类中方法外的变量称为属性,被该类的所有对象所共享。

    python
    print(Student.native_pace) stu1=Student('张三',29) stu2=Student('李四',23) print(stu1.native_pace) print(stu2.native_pace) Student.native_pace='天津' # native_pace属性是被stu1和stu2共享的 print(stu1.native_pace) print(stu2.native_pace)
  • 类方法:使用 @calssmethod 修饰的方法,使用类名直接访问的方法。

    python
    Student.cm()
  • 静态方法:使用 @staticmethod 修饰的方法,使用类名直接访问的方法。

    python
    Student.method()
  • Python是动态语言,在创建对象之后,可以动态地绑定属性和方法

    python
    class Student: def __init__(self,name,age): # name和age是所有Student类对象都可以使用的 self.name=name self.age=age def eat(self): print(self.name+'在吃饭') stu1=Student('张三',23) # 创建Student类对象 stu2=Student('李四',30) stu2.gender='男' # 给stu2动态绑定gender属性,只适用于当前绑定的属性 print(stu1.name,stu1.age) print(stu2.name,stu2.age,stu2.gender) stu1.eat() stu2.eat() def show(): print('定义类之外的称为函数') stu1.show=show() # 动态绑定方法 stu1.show # stu2.show # 因为sut2没有绑定show方法,所以会报错

本文作者:柯南

本文链接:

版权声明:©2023 柯南 All rights reserved.