python学习 -- 类与对象

# 声明一个类:

class Demo(object):

当类没有指定继承时,均继承自超类object,所以当继承自object时,通常省略(object)部分,写作:

class Demo:

# 类属性:

在类体中,方法之外定义的变量称之为类属性;

class Demo:
    weather = "sunny"  # weather 即为类属性

访问类属性时,通过类名.类属性的方法来访问;

class Demo:
    weather = "sunny"

print(Demo.weather)

# 构造方法(__init__):

每个类都有其构造方法,当调用该类时,会自动执行其构造方法;当开发者不定义__init__方法时,会自动给类添加该方法 ;

class People(object):

    # 定义构造方法
    def __init__(self, year, price):
        self.year = year
        self.price = price

# 实例方法:

方法和函数的区别:函数实现的是某个独立的功能,而实例方法实现的是类中的一个行为,属于类的一个部分多用于定义该类对象的行为和实现;

语法:def 方法名(self, 参数列表) self最大作用是引用当前方法的调用者,也可以在一个实例方法中访问实例的其他变量、属性和其他方法

class Weathers(object):
    def demo_case(self, weather):  # 实例方法demo_case
        print(f"我讨厌{weather}")

# 类方法:

作用:可以操作类的详细信息

语法:方法前必须要用 @classmethod 装饰器来声明

访问:类名.类方法名(参数列表)

class Person(object):
    # 类属性
    head = 1

    # 类方法
    @classmethod
    def body(cls):
        cls.head += 1


# 通过类名访问类方法
Person.body()
print(Person.head)  # 2

# 静态方法

语法:方法前必须要用 @staticmethod 装饰器来声明

静态方法不能访问类的数据,没有cls、self关键字,不能设置类、实例的状态

常用于创建通用的工具类函数,这样就可以把常用函数放在一个类中,进行统一的管理,使用时不需要实例化对象,就可以便捷的调用

class Watch(object):
    # 定义静态方法
    @staticmethod
    def stand_here():
        print("这是静态方法")


# 通过类名访问静态方法
Watch.stand_here()
类方法和静态方法可以直接通过类名调用,省去实例化步骤
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值