斤斤计较之Python:类

斤斤计较之Python:类

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")
	<statement‐3>
	.
	.
	.
	<statement‐N>

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

3、继承

class DerivedClassName(MyClass,MyClass1, Myclass2):
	<statement‐1>
.
.
.
	<statement‐N>

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值