python的神奇特性——更新中

metaclass

What are metaclasses in Python?

举个例子:
type可以用于创建类,和直接创建类的操作是一样的

>>> class Foo():
        bar=True
>>> Foo.bar
True
>>> f=Foo()
>>> f
<Foo object at 0x7f2142616b38>

>>> Goo=type('Goo',(),{'bar':True})
>>> Goo
<class 'Goo'>
>>> Goo.bar
True
>>> g=Goo()
>>> g
<Goo object at 0x7f21426627f0>
判断变量是否为整数

Checking whether a variable is an integer or not

定义一个类,设置objectint,那么就只能输入int类型的数

>>> class Spam(int):  
        	pass

当输入是 2 或者 ’2‘ 时,都不会报错

>>> x = Spam(2)
>>> y = Spam('2')

但是如果输入的是 ‘2_’, 很明显是字符串时,就会报错

>>> z = Spam('2_')
Traceback (most recent call last):
  File "<input>", line 2, in <module>
ValueError: invalid literal for int() with base 10: '2_'

下面讲,如何判断变量是否为整数
第一反应是type(x),但其实是不对的,应该用isinstance(<var>, int)
比如在刚才的类中,定义了x = Spam(2)y = Spam('2')

>>> type(x)==int
False
>>> type(y)==int
False
>>> isinstance(x,int)
True
>>> isinstance(y,int)
True

type还有一个神奇的地方,在pycharm中使用的时候,
在注释中,它后面加个冒号,结果后面的变量会高亮,而普通的则不会
在这里插入图片描述

学习资源

python在线学习和coding,无需安装环境,在最上方还有其他语言如Java、C++可以学习
https://www.learnpython.org/
stackoverflow.com也很有意思,下面这个链接是按votes数排序的,基本都是有用的答案
https://stackoverflow.com/questions/tagged/python?sort=votes&pageSize=15

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值