【Python】类的基本使用

类的定义

  • 语法:class 类名() : 代码块

创建对象

语法:对象名 = 类名 ( )

class MyClass():
    pass

object1 = MyClass()
print(object1, type(object1))
# ---------- 输出 ----------
# <__main__.MyClass object at 0x000002469E4E81D0> <class '__main__.MyClass'>

isinstance(object, className)

  • 用于判断该对象是否属于该类 ( 或其父类 ) ;若是则返回 True,否则返回 False
class MyClass():
    pass

object1 = MyClass()
print(isinstance(object1, MyClass))
# ---------- 输出 ----------
# True

类的简介

类是 type 类型的对象

class MyClass():
    pass

print(id(MyClass), type(MyClass))
# ---------- 输出 ----------
# 3078569221256 <class 'type'>

类的种类

自定义的类 & 系统自带的类 (eg:int、float、list、dict…)

print(int)

class MyClass():
    pass

print(MyClass)
# ---------- 输出 ----------
# <class 'int'>
# <class '__main__.MyClass'>

数据 ( 属性 ) & 行为 ( 方法 )

(1)数据 ( 属性 )

类的属性
  • 类的数据 ( 属性 ) :直接在类中用变量创建。
class Person():
	name = 'superman'
  • 该类的数据 ( 属性 ) 是该类的对象共同拥有的,即该类的对象都可以调用该类的数据 ( 属性 ),但是无法修改。
  • 类属性可以通过类名访问、修改
class Animals(object):
    name = 'animals'

print(Animals.name)
Animals.name = 'duck'
print(Animals.name)
# ---------- 输出 ----------
# animals
# duck
对象的属性
  • 对象的数据 ( 属性 ) :通过类的对象添加的属性。
  • 对象的数据 ( 属性 ) 只能通过该对象进行访问、修改。

(2)行为 ( 方法 )

对象的行为
  • 直接在类中用函数创建
  • 对象调用行为函数时,把自己作为实参传递给行为函数,所以行为函数默认带有一个 self 形参。
  • 通过类名调用行为函数时,需要填写类的对象作为实参
class Person(object):
    def speak(self):
        print('i am a handsome boy')

person1 = Person()
person1.speak()        # 通过对象调用行为函数
Person.speak(person1)  # 通过类名调用行为函数
# ---------- 输出 ----------
# i am a handsome boy
# i am a handsome boy
类的行为
  • 在类中以 @classmethod 来修饰的行为 ( 方法 )
  • 类的行为 ( 方法 ) 的第一个形参是 cls,cls 就相当于当该类名。其实就是类把自己作为实参传递给行为函数了。
  • 类的行为 ( 方法 ) 是所有对象共同拥有的,所以它不仅可以通过类名去调用,还可以通过对象去调用。
class Person(object):
    @classmethod
    def speak(cls):
        print('i am a handsome boy')

person1 = Person() 
person1.speak()
Person.speak()
# ---------- 输出 ----------
# i am a handsome boy
# i am a handsome boy

(3)静态行为 ( 方法 )

  • @staticmethod 修饰的行为 ( 方法 ) ,就是静态行为 ( 方法 )
  • 静态方法不需要默认形参,可以通过类名或对象调用
class Person(object):
    @staticmethod
    def speak():
        print('i am a handsome boy')

person1 = Person()
person1.speak()
Person.speak()
# ---------- 输出 ----------
# i am a handsome boy
# i am a handsome boy
  • 类里面的行为函数默认只能调用类的属性。

添加 / 修改 对象的数据 ( 属性 )

添加数据的语法:对象名 . 属性名 = 属性值

class MyClass():
    pass

object1 = MyClass()
object1.name = 'superman'
print(object1.name)
# ---------- 输出 ----------
# superman
  • 当添加的属性名已存在时,添加的属性值会覆盖原来的属性值
class Person():
    name = 'superman'

object1 = Person()
object1.name = 'monster'
print(object1.name)
# ---------- 输出 ----------
# monster
  • 当重复添加相同属性时,后面写的属性值会覆盖前面写的属性值
class Person():
    name = 'superman'

object1 = Person()
object1.name = 'monster'
object1.name = 'person'
print(object1.name)
# ---------- 输出 ----------
# person

__ init __ 函数

即特殊方法,也叫魔法方法

  • 类的对象在创建时会自动执行类的非函数内容,然后执行 __ init __ 函数内容
class Preson():
    print('这是类的非函数内容')
    
    def __init__(self, PresonName):
        self.name = PresonName
        print(f'在__init__函数里面输出{self.name}')
        
    def speak(self):
        print('这里是类里面的函数内容')

object1 = Preson('superman')
print(f'在类外面输出{object1.name}')
# ---------- 输出 ----------
# 这是类的非函数内容
# 在__init__函数里面输出superman
# 在类外面输出superman
  • 对象通过 __ init __ 函数创建的属性,是该对象的特有属性,不是类的属性
class Preson():
    def __init__(self, PresonName):
        self.name = PresonName

object1 = Preson('superman')
print(object1.name)
# ---------- 输出 ----------
# superman

类的封装、继承 & 多态

【Python】类的封装、继承 & 多态

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JS.Huang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值