8°

Python3类和对象

类和对象

定义类

  1. 语法如下 :
	class Person:
	# 类变量
	hair = 'black'
	# 构造方法
	def __init__(self, name='Alex', age=24):
		self.name = name
		self.age = age
	# 实例方法
	def say(self, content):
		print(content)
  1. 类名:类名必须由一个或多个有意义的单词连缀而成,每个单词 首字母大写,其它字母小写,单词与单词之间 不要使用任何分隔符

  2. Python类所包含的 类变量可以动态增加或删除。在类体中为新变量赋值就是 增加类变量,程序也可在任何地址为已有的类及其实例增加变量;程序可 通过 del 语句删除已有类或实例的变量

  3. 类中定义的方法默认是 实例方法,实例方法至少应该定义一个参数,该参数通常命名为 self,该参数 会被绑定到类的实例上

对象的产生和使用

# 实例化Person类
p = Person()
# 调用实例变量
print(p.name, p.age)
# 为实例变量赋值
p.name = 'Jack'
# 调用实例方法
p.say("Hello")
# 新增实例变量
p.skills = ['programming', 'swimming']
# 删除实例变量
del p.name
print(p.name) # AttributeError

类的方法

类调用实例方法

使用类调用实例方法时,必须显式地为方法第一个参数 self 传入方法调用者,否则会报错

p = Person()
Person.say(p, "Hello") # 使用类调用实例方法,效果与 p.say("hello")一样

类方法与静态方法

  • 类方法与静态方法都推荐 使用类来调用
  • 类方法的第一个参数(通常建议命名为cls)会自动绑定;静态方法则不会自动绑定,必须显式传入
class Bird:
	# 类方法
	@classmethod
	def fly(cls):
		print(cls)
# 静态方法
@staticmethod
def info(p):
	print(p)

Bird.fly() Bird.info("crazyit")

本文由【ZeroBit】发布于开源中国,原文链接:https://my.oschina.net/zerobit/blog/3073758

全部评论: 0

    我有话说: