第四节 Python基础-面向对象

第四节 Python基础-面向对象

类的创建

  • 类的定义:用来描述具有共同的属性和方法的对象集合。
  • 类的声明格式:
    class 类名():
    	属性1 = 属性值;
    	__属性2 = 属性值;		#定义私有属性,只能在类内部使用"self.__属性2"访问
    	...
    	def 方法1(self):
    		语句1;
    		...
    	def __方法2(self):		#定义私有方法,只能在类内部使用"self.__方法2()"访问
    		语句1;
    		...
    	...
    
    例:定义一个人类,有姓名和年龄两个属性,有自我介绍这一个动作(方法)
    class Person():		
    	name = ""
    	age = 0
    	def show(self):		#self代表当前实例对象的地址
    		print("我叫{0},我今年{1}岁了".format(self.name,self.age))
    		return None
    
    • 如果没有指定继承的话,类名后面的()可以省略
    • 方法的定义:
      • 定义方法时必须传入默认参数self,且放在首位----与普通函数唯一的区别
      • 方法内如果调用类变量,只需要在调用处使用"self.变量"
      • 方法需要传入参数,则需要在声明时设置形参,调用处直接写上名称即可

类的实例

  • 实例化类对象,例:x = Person()
  • 设置/修改对象的属性,例:x.name = “小明” \ x.age = 19
  • 调用对象方法,例:x.show()
    • 在定义时传入的self在调用时不写
    • 如果定义的时候设置了形参,例:def getInfo(self,a,b):
      则调用时需要传入实参,例:x.getInfo(“小明”,19)

构造方法

  • 类都有一个默认的特殊方法__init__(self) ,在实例化对象的时候都会自动调用
  • 在定义类的时候可以再次定义此方法,例:
    def __init__(self):
    	print("构造方法被自动调用了")		#此时,每实例化一个对象就会执行一次该语句
    	return None
    
  • 构造方法可以设置参数,参数传入到实例化对象上,例:
    def __init__(self,name,age):
    	self.name = name
    	self.age = age
    	return None
    
    此时,实例化对象的时候必须传入参数,例:y = Person(“小红”,17)

继承

  • 描述:当子类继承父类后,子类获得父类除私有外的所有属性和方法
  • 方法重写:如果父类方法不能满足需求,可以在子类里面重写父类的方法
  • 使用:定义子类的时候将父类名写在子类名后面的()内,例:
    class Man(Person):
    	gender = "男人"
    	def tell(self):
    		print("我是男人!")
    		return None
    
  • 多继承:Python允许多继承,将需要继承的父类置于()内,用逗号隔开即可
  • 当继承的父类有相同的方法时,优先继承左边的
    关于继承的范例:
    class Person():		#定义一个Person类
    	name = ""
    	age = 0
    	def __init__(self,name,age):
        	self.name = name
        	self.age = age
        	return None
    	def show(self):
    		print("我叫{0},我今年{1}岁了".format(self.name,self.age))
    		return None
    class Student():		#定义一个Student类
    	school = ""
    	grade = ""
    	def __init__(self,school,grade):
        	self.school = school
        	self.grade = grade
        	return None
    	def show(self):
        	print("我在{0}读书,现在是{1}。".format(self.school,self.grade))
        	return None
     #单继承范例
    class Man(Person):		#定义一个Man类,继承Person类
    	gender = "男人"
    	def __init__(self,name,age):
        	Person.__init__(self,name,age);		#调用父类构造方法
        	return None
    	def show(self):			#覆写父类的show()方法
        	print("我是男人!")
        	return None
     #多继承范例
    class Demo(Student,Man):		#定义一个Demo类,继承Student类和Man类
    	a = ""
    	def __init__(self,name,age,school,grade):
        	Student.__init__(self,school,grade)		#调用父类Student的构造方法
       		Man.__init__(self,name,age)					#调用父类Man的构造方法
        	return None
    #实例化一个Demo类对象
    x = Demo("孙悟空",500,"方寸山斜月三星洞","三年级")
    x.show()		#两个父类都有此方法,但由于Student类在左边,所以此处调用Student类的show()方法
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,面向对象的构造方法是一个特殊的方法,它在类实例化的时候自动优先执行。通常用于初始化一些属性等操作。构造方法的名称是`__init__`。 构造方法的基本语法规则如下: ``` class 类名: def __init__(self, 参数列表): 语句块 ``` 在构造方法中,第一个参数约定是`self`,表示类实例自身,其他参数是实例参数。在方法的类部,可以包含多个属性。构造方法没有返回值,或返回`None`,否则会产生`TypeError`异常。`self`在类定义内部代表类的实例,用于访问实例相关的属性和方法。 下面是一个代码实例: ``` class DemoClass: def __init__(self, name): print(name) dc1 = DemoClass("小明") dc2 = DemoClass("小吴") ``` 在这个例子中,`DemoClass`这个类的构造方法`__init__`接收一个参数`name`,并在实例化时打印出来。通过`dc1`和`dc2`分别实例化了两个`DemoClass`的对象,并传入不同的参数。当实例化对象时,构造方法会自动执行,并打印出传入的参数。 总结来说,Python中的面向对象构造方法是用于从类创建实例对象的过程,提供了参数输入方式,并为实例属性的定义和赋值提供了支持。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [python基础:14.面向对象之构造和析构方法](https://blog.csdn.net/xx033138/article/details/105822995)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [4. Python面向对象语法——类的构造函数](https://blog.csdn.net/weixin_44940488/article/details/117030783)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值