Python编程思想

编程思想

两大编程思想
面向过程面向对象
区别事物比较简单,可以用线性思维去解决事务比较复杂,使用简单的线性思维无法解决
共同点

面向过程和面向对象都是解决实际问题的一种思维方式

二者相辅相成,并不是对立的

解决复杂问题,通过面向对象方式便于我们从宏观上把握事物之间复杂的关系,方便我们分析整个系统:具体到微观操作,仍然使用面向过程方式来处理

类与对象

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

数据类型

  • 不同的数据类型属于不同的类
  • 使用内置函数查看数据类型

对象

100、90、666都是int类之下包含的 相似的不同个例,这个个例专业术语称为实例或对象。

Python中一切皆对象

类的创建

创建类的语法

class Student: #Student为类的名称(类名)由一个或多个单词组成,每个单词首字母 大写,其余小写
    pass

类的组成

  • 初始化方法:每当进行类的实例化时,初始化方法会自动被执行
  • 类属性:直接写在类里的变量,称为类属性
  • 实例方法:在类之外定义的称为函数,在类之内定义的称为方法
  • 静态方法:使用staticmethod修饰的,称为静态方法(规定不允许写self)
  • 类方法:使用classmethod修饰,称为类方法
class Student: #Student为类的名称(类名)由一个或多个单词组成,每个单词首字母 大写,其余小写
    native_pace='河南' #直接写在类里的变量,称为类属性

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


    #实例方法(在类之外定义的称为函数,在类之内定义的称为方法)
    def a(self):
        print('今天星期一')

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

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

 对象的创建

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

语法:

        实例名=类名()

意义:有了实例,就可以调用类中的内容

class Student: #Student为类的名称(类名)由一个或多个单词组成,每个单词首字母 大写,其余小写
    native_pace='河南' #直接写在类里的变量,称为类属性

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


    #实例方法(在类之外定义的称为函数,在类之内定义的称为方法)
    def a(self):
        print('今天星期一')

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

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

#创建student类的对象
stu1=Student('张三',20)
print(id(stu1)) # 1783010897456 实例对象(stu1是Student这个类的对象的名称)
print(type(stu1)) # <class '__main__.Student'>
print(stu1) # <__main__.Student object at 0x0000019F23BB2E30> 输出stu1的值为十六进制的stu1的ID

print(id(Student)) #类对象(Student是类的名称)
print(type(Student))
print(Student)

#调用student类的对象
stu1.a() #(对象名).(方法名)
Student.a(stu1) #(类名).(方法名(类的对象))-->实际上就是方法定义处的self
#28行于27行代码功能相同,都是调用Student中的a方法

print(stu1.age)
print(stu1.name)

类属性_类方法_静态方法的使用

  • 类属性:类中方法外的变量称为类属性,被该类的所有对象所共享
  • 类方法:使用@classmethod修饰的方法,使用类名直接访问的方法
  • 静态方法:使用@staticmethod修饰的主法,使用类名直接访问的方法
class Student: #Student为类的名称(类名)由一个或多个单词组成,每个单词首字母 大写,其余小写
    native_pace='河南' #直接写在类里的变量,称为类属性

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


    #实例方法(在类之外定义的称为函数,在类之内定义的称为方法)
    def a(self):
        print('今天星期一')

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

    #类方法
    @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()

动态绑定属性和方法

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

一个student类可以创建n多个student类的实例对象,每个实例对象的属性值不同

class Student:
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def eat(self):
        print(self.name+'在吃饭')

stu1=Student('张三',20)
stu2=Student('李四',30)
print(id(stu1))
print(id(stu2))

#为stu2动态绑定属性
stu1.gender='女'
print(stu1.name,stu1.age,stu1.gender)
print(stu2.name,stu2.age)

stu1.eat()
stu2.eat()

#为stu2动态绑定方法
def show():
    print('定义在类之外的,称为函数')
stu1.show=show
stu1.show() #任何一个对象想要输出原有结果,都必须绑定
#stu2.show()因为stu2没有绑定show方法,所以程序运行报错

总结

  • 类属性类方法静态方法都是使用类名去使用
  • 实例方法除了使用对象名去使用,也可以使用类名调用,将对象传入
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值