斤斤计较之Python:类

斤斤计较之Python:类

  • 1、命名空间
  • 2、定义类
  • 3、继承

1、命名空间

def scope_test():
	def do_local():
		spam = "local spam"
	def do_nonlocal():
		nonlocal spam
		spam = "nonlocal spam"
	def do_global():
		global spam
		spam = "global spam"
		spam = "test spam"
	do_local()
		print("After local assignment:", spam):
	do_nonlocal()
		print("After nonlocal assignment:", spam):
	do_global()
		print("After global assignment:", spam):
scope_test()
print("In global scope:", spam)

函数输出为:
After local assignment: test spam
After nonlocal assignment: nonlocal spam
After global assignment: nonlocal spam
In global scope: global spam
也就是说,函数所处的位置的变量名相同的情况下,并且有多个作用域变量,总是优先使用作用域最小的变量。

2、定义类

class MyClass:
	def __init__(self):
		self.data = []
	def print_name(self):
		print("Hello, My name is Harry")
	
	.
	.
	.
	

#通常声明为def定义的函数,类里面的参数函数等都可以通过类名进行点号引用
x = MyClass() # 类的实例化 ,实例化第一步进入类会执行__init__函数,通常默认的类参数都在此处定义
#按照上面的定义,仅仅定义了self.data,我们可以使用x.data引用数据。也可以使用x.name = a,实例后定义新的变量,这是合法的
#同样通过x.print_name() 可以调用定义的方法
#注意类中定义的方法的第一个参数,约定俗成的使用self,当然你也可以使用其他任何合法的变量名,但是非常不建议这么做。

3、继承

class DerivedClassName(MyClass,MyClass1, Myclass2):
	
.
.
.
	

#这样我们就定义了一个继承的类,类DerivedClassName,继承了类MyClass
#基本原理是:如果在类中找不到请求调用的属性,就搜索基类。如果基类是由别的类派生而来,这个规则会递归的下去。
#Python是支持多继承的,所以使用如上的方法进行继承就是多继承的方式。
isinstance(obj, int) # 检查类的实例类型
issubclass() # 检查类的继承关系

你可能感兴趣的:(Python基础)