Python学习笔记05——类的创建及使用

1类的定义

1.1类的组成

属性具体属性特点
方法构造方法构造方法用于构造实例对象,__init__,传入参数第一个必须是self
方法成员方法成员方法定义在类中,第一个参数必须是self,方法前加__
方法私有方法私有方法不能由外部调用,第一个参数必须是self
方法静态方法静态方法不依赖于实例对象,同时也不能调用类方法和类属性,用@staticmethod修饰
方法类方法类方法不依赖实例对象,但是必须传入参数cls,代表类本身,因此可以调用类方法和变量,用classmethod修饰
属性成员属性在构造方法中定义的属性,可由实例对象调用
属性私有属性在构造方法中定义的属性,只能由类对象内部调用,属性名前加__
属性类属性在类中定义的属性,不依赖实例对象调用

1.2类的定义格式

定义格式如下:

lass ClassName:
    clsname=“”#定义类变量

    @staticmethod#定义静态方法,静态方法不依托实例对象存在,但是也不能调用成员变量和成员方法
    def staticname():
        
	@classmethod#定义类方法,类方法不依托实例对象存在,同时类变量需要传入cls参数(类本身参数),因此可以调用和修改类变量
    def classmethodname(cls):
        
    def__init__(self,arg1,arg2):#定义构造方法,需要传入固定self参数(实例对象本身)#####__init__千万不能写成int
        self.arg1=arg1         #定义成员属性
        self.__arg2=arg2       #定义私有属性,外部不可访问和调用,只能通过类成员方法访问

    def set_arg2(self):              #定义成员方法,可以修改私有属性
        
    def __method(self)               #定义私有方法,外部不可调用,只能通过成员方法调用

实例演示如下:

>>> class Dog:
...     classname="狗类"
...     @staticmethod
...     def state():
...         print("这是一个狗类")
...     @classmethod
...     def favorite(cls):
...         print(cls.classname+":狗喜欢吃骨头")
...     def __init__(self,name,age):
...         self.name=name
...         self.__age=age
...     def set_age(self,age):
...         if not isinstance(age,int):
...             print("年龄必须是整数!")
...         elif age<=0:
...             print("年龄必须大于0!")
...         else:
...             self.__age=age
...     def show(self):
...         self.play()
...     def play(self):
...         print("汪汪汪")
...
>>> Dog.classname
'狗类'
>>> Dog.favorite()
狗类:狗喜欢吃骨头
>>> dog.name
'旺财'
>>> dog.set_age(5)
>>> dog.show()
汪汪汪
>>> 

2类的继承和多态

2.1类的继承

继承语法如下:

class SubClass(BaseClass1,BaseClass2):
语法块

注意:
1.继承直接在类名后面加括号、带上父类名称;
2.python中可以继承多个类;
3.子类不能继承父类的私有方法,也不能调用;

2.2类的多态

子类对父类的同名方法进行复写。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值