python学习笔记(4):面向对象

面向对象

定义

class Student(被继承类):
	def __init__(self, xx, xxx):
		#构造函数

类方法的第一个参数一定是self。除此之外和普通函数并没有区别。同样可以使用_xx __xxx来定义private变量。

class Animal(object):
	def run(self):
		pass

class Cat(Animal):
	def run(self):
		pass

class me(object):
	def run(self):
		pass

def f(Animal):
	Animal.run()

Animal,Cat,Me的对象都可以传进f函数,这是python的鸭子类型。一个对象只要“看起来像鸭子,走起路来像鸭子”,那它就可以被看做是鸭子。不要求严格的继承关系。

判断类型

type()    # 返回类类型
isinstance(对象, 类类型) # 返回True or False,可以判断继承的类

获得对象属性和方法

dir() #返回一个对象属性和方法的字符串列表
hasatrr(obj, 'atrribute') #判断是否有属性或方法
getatrr(obj, 'atrribute')  # 等于 obj.atrribute

动态绑定属性

class Student(Object):
	pass
def age(self, age):
	self.age = age

from types import MethodType
s = Student()
s.age = MethodType(age, s) # 给对象绑定方法

Student.age = age # 给类绑定方法

slot限制允许绑定的属性:

class Student(Object):
	__slots__ = ('name', 'age') #只允许绑定这两个属性
posted @ 2022-07-29 08:56  hellozhangjz  阅读(29)  评论(0)    收藏  举报