精华内容
下载资源
问答
  • python type函数_Python type()函数

    千次阅读 2020-07-14 11:44:52
    python type函数 Python type()函数 (Python type() Function) Python has a lot of buit-in function. The type() function is used to get the type of an object. Python具有很多内置功能。 type()函数用于获取...

    python type函数

    Python type()函数 (Python type() Function)

    Python has a lot of buit-in function. The type() function is used to get the type of an object.

    Python具有很多内置功能。 type()函数用于获取对象的类型。

    Python type() function syntax is:

    Python type()函数语法为:

    type(object)
    
    type(name, bases, dict)
    • When a single argument is passed to the type() function, it returns the type of the object. Its value is the same as the object.__class__ instance variable.

      当将单个参数传递给type()函数时,它将返回对象的类型。 它的值与object .__ class__实例变量相同。
    • When three arguments are passed, it returns a new type object. It’s used to create a class dynamically on the fly.
      1. The “name” string becomes the class name. Its same as the __name__ attribute of a class.
      2. The “bases” tuple specifies the base classes. Its same as the __bases__ attribute of the class.
      3. The “dict” dictionary is used to create the class body. Its same as the __dict__ attribute of the class.

      当传递三个参数时,它将返回一个新的类型对象。 它用于动态动态创建类。
      1. “名称”字符串成为类名称。 与类的__name__属性相同。
      2. “基”元组指定基类。 与类的__bases__属性相同。
      3. “ dict”字典用于创建类主体。 与类的__dict__属性相同。

    Python type()示例 (Python type() Examples)

    Let’s look into some examples of using the type() function.

    让我们看一些使用type()函数的示例。

    1.检查对象的类型 (1. Checking the type of an object)

    x = 10
    print(type(x))
    
    s = 'abc'
    print(type(s))
    
    from collections import OrderedDict
    
    od = OrderedDict()
    print(type(od))
    
    
    class Data:
        pass
    
    
    d = Data()
    print(type(d))

    Output:

    输出:

    <class 'int'>
    <class 'str'>
    <class 'collections.OrderedDict'>
    <class '__main__.Data'>

    Notice that the type() function returns the type of the object with the module name. Since our Python script doesn’t have a module, it’s module becomes __main__.

    注意,type()函数返回带有模块名称的对象的类型。 由于我们的Python脚本没有模块,因此该模块成为__main__。

    2.创建动态类 (2. Creating Dynamic Classes)

    Let’s say we have following classes.

    假设我们有以下课程。

    class Data:
        """Data Class"""
        d_id = 10
    
    
    class SubData(Data):
        """SubData Class"""
        sd_id = 20

    Let’s print some of the properties of these classes.

    让我们打印这些类的一些属性。

    print(Data.__class__)
    print(Data.__bases__)
    print(Data.__dict__)
    print(Data.__doc__)
    
    print(SubData.__class__)
    print(SubData.__bases__)
    print(SubData.__dict__)
    print(SubData.__doc__)

    Output:

    输出:

    <class 'type'>
    (<class 'object'>,)
    {'__module__': '__main__', '__doc__': 'Data Class', 'd_id': 10, '__dict__': <attribute '__dict__' of 'Data' objects>, '__weakref__': <attribute '__weakref__' of 'Data' objects>}
    Data Class
    
    <class 'type'>
    (<class '__main__.Data'>,)
    {'__module__': '__main__', '__doc__': 'SubData Class', 'sd_id': 20}
    SubData Class

    We can create similar classes using the type() function.

    我们可以使用type()函数创建类似的类。

    Data1 = type('Data1', (object,), {'__doc__': 'Data1 Class', 'd_id': 10})
    SubData1 = type('SubData1', (Data1,), {'__doc__': 'SubData1 Class', 'sd_id': 20})
    
    print(Data1.__class__)
    print(Data1.__bases__)
    print(Data1.__dict__)
    print(Data1.__doc__)
    
    print(SubData1.__class__)
    print(SubData1.__bases__)
    print(SubData1.__dict__)
    print(SubData1.__doc__)

    Output:

    输出:

    <class 'type'>
    (<class 'object'>,)
    {'__doc__': 'Data1 Class', 'd_id': 10, '__module__': '__main__', '__dict__': <attribute '__dict__' of 'Data1' objects>, '__weakref__': <attribute '__weakref__' of 'Data1' objects>}
    Data1 Class
    
    <class 'type'>
    (<class '__main__.Data1'>,)
    {'__doc__': 'SubData1 Class', 'sd_id': 20, '__module__': '__main__'}
    SubData1 Class

    Note that we can’t create functions in the dynamic class using the type() function.

    注意,我们不能使用type()函数在动态类中创建函数。

    type()函数的实际用法 (Real-Life Usage of type() function)

    Python is a dynamically-typed language. So, if we want to know the type of the arguments, we can use the type() function. If you want to make sure that your function works only on the specific types of objects, use isinstance() function.

    Python是一种动态类型的语言。 因此,如果我们想知道参数的类型,可以使用type()函数。 如果要确保函数仅适用于特定类型的对象,请使用isinstance()函数。

    Let’s say we want to create a function to calculate something on two integers. We can implement it in the following way.

    假设我们要创建一个函数来计算两个整数。 我们可以通过以下方式实现它。

    def calculate(x, y, op='sum'):
        if not(isinstance(x, int) and isinstance(y, int)):
            print(f'Invalid Types of Arguments - x:{type(x)}, y:{type(y)}')
            raise TypeError('Incompatible types of arguments, must be integers')
        
        if op == 'difference':
            return x - y
        if op == 'multiply':
            return x * y
        # default is sum
        return x + y

    The isinstance() function is used to validate the input argument type. The type() function is used to print the type of the parameters when validation fails.

    isinstance()函数用于验证输入参数类型。 当验证失败时,type()函数用于打印参数的类型。

    参考资料 (References)

    翻译自: https://www.journaldev.com/15076/python-type

    python type函数

    展开全文
  • 上面这个表格包含的有“内置函数”和“内置类型”,其中的内置类型可以作为函数...我们可以通过type清楚的看到abs是一个builtin_function_or_method,即内置函数,而str和float是一个type,即内置类型。两者在使用...

    在这里插入图片描述
    上面这个表格包含的有“内置函数”和“内置类型”,其中的内置类型可以作为函数使用,把其它类型的对象转变为该类型的对象
    通过ipython,我们可以查看表格中的是函数还是类型。比如:
    在这里插入图片描述
    我们可以通过type清楚的看到abs是一个builtin_function_or_method,即内置函数,而str和float是一个type,即内置类型。两者在使用上没有什么区别,官方文档中也是把内置类型当做内置函数介绍的。
    我们把这些内置函数(类型)分成几类进行介绍。
    一.数值型操作
    1abs(x) 求绝对值
    在这里插入图片描述
    2.bin(x)。将一个整数转变为一个前缀为0b的二进制字符串。结果是一个合法的 Python 表达式。x不能是浮点数,否则会报错。
    在这里插入图片描述
    3.hex(x)
    将整数转换为以“0x”为前缀的小写十六进制字符串。如果 x 不是 Python int 对象,则必须定义返回整数的 index() 方法。

    4.oct(x)
    将一个整数转变为一个前缀为“0o”的八进制字符串。结果是一个合法的 Python 表达式。如果 x 不是 Python 的 int 对象,那它需要定义 index() 方法返回一个整数。
    5.chr(i) 返回 Unicode 码位为整数 i 的字符的字符串格式,这是 ord() 的逆函数
    实参的合法范围是 0 到 1,114,111(16 进制表示是 0x10FFFF)。如果 i 超过这个范围,会触发 ValueError 异常。

    在这里插入图片描述
    6.ord©
    对表示单个 Unicode 字符的字符串,返回代表它 Unicode 码点的整数。例如 ord(‘a’) 返回整数 97, ord(‘€’) (欧元符合)返回 8364 。这是 chr() 的逆函数。

    7.divmod(a, b).它将两个(非复数)数字作为实参,并在执行整数除法时返回一对商和余数。对于混合操作数类型,适用双目算术运算符的规则。对于整数,结果和 (a // b, a % b) 一致。对于浮点数,结果是 (q, a % b) ,q 通常是 math.floor(a / b) 但可能会比 1 小。在任何情况下, q * b + a % b 和 a 基本相等;如果 a % b 非零,它的符号和 b 一样,并且 0 <= abs(a % b) < abs(b) 。
    在这里插入图片描述
    8.pow(x, y[, z])
    返回 x 的 y 次幂;如果 z 存在,则对 z 取余(比直接 pow(x, y) % z 计算更高效)。两个参数形式的 pow(x, y) 等价于幂运算符: x**y。

    9.round(number[, ndigits])
    返回精确到小数点后ndigits精度的数。 如果省略ndigits或者为None,则返回其输入的最接近的整数。

    对于支持round()的内置类型,值被舍入离前一位更近的一端(四舍六入); 如果距离两端相等(5)则保留到偶数一边。(例如,round(0.5)和round(-0.5)均为0,round(1.5)为2)。 任何整数值对ndigits(正数,零或负数)有效。如果省略ndigits或None,则返回值为整数。 否则返回值与number的类型相同。
    对于一般的Python对象number,将代理舍入为number.round
    注释: round()对于浮点数的行为可能令人惊讶,比如,round(2.675, 2)得出2.67,而不是期望的2.68。这不是bug,这是因为大多数十进制小数不能准确表示为二进制的浮点数。

    sum(iterable[, start])

    从start开始由左到右累加可迭代的元素并返回总数。start默认为0. iterable的项通常是数字,起始值不允许是字符串。

    对于某些用例,sum()有很好的替代方法。 连接字符串序列的首选快速方法是调用’’.join(sequence)。 要以扩展精度累加浮点值,就用math.fsum()。要拼接一系列可迭代对象就考虑使用itertools.chain()。
    二、可迭代操作
    all(): 如果iterable的所有元素都为真(或iterable为空)返回True;
    any():如果iterable的任一个元素为真则返回True。如果iterable为空,则返回False。
    enumerate(iterable, start=0):
    返回一个枚举对象。iterable 必须是一个序列,或 iterator,或其他支持迭代的对象。 enumerate() 返回的迭代器的 next() 方法返回一个元组,里面包含一个计数值(从 start 开始,默认为 0)和通过迭代 iterable 获得的值。

    filter(function, iterable):
    用 iterable 中函数 function 返回真的那些元素,构建一个新的迭代器。iterable 可以是一个序列,一个支持迭代的容器,或一个迭代器。如果 function 是 None ,则会假设它是一个身份函数,即 iterable 中所有返回假的元素会被移除。

    请注意, filter(function, iterable) 相当于一个生成器表达式,当 function 不是 None 的时候为 (item for item in iterable if function(item));function 是 None 的时候为 (item for item in iterable if item) 。
    只有 function 返回 false 时才选取 iterable 中元素的补充函数。
    map(function, iterable, …)
    产生一个将 function 应用于迭代器中所有元素并返回结果的迭代器。如果传递了额外的 iterable 实参,function 必须接受相同个数的实参,并使用所有迭代器中并行获取的元素。当有多个迭代器时,最短的迭代器耗尽则整个迭代结束。

    由于python的内置函数过多,我这里便不再一一列举,现提供两个比较完整的查阅网站。
    http://www.runoob.com/python/python-built-in-functions.html
    https://www.yuanrenxue.com/python/python-build-in-functions-1.html

            </div>
    
    展开全文
  • 1. unreal.EditorAssetLibrary.load_asset(path) 加载相对路径的资源到内存 2.type(unreal.SkeletalMesh)

    1. unreal.EditorAssetLibrary.load_asset(path) 加载相对路径的资源到内存

    2. type(unreal.SkeletalMesh()) 判断对象类型

    3. obj.get_editor_property('xxx') / set_editor_property('xxx',value) 获得/设置对象属性

    4. FBX(skeleton和static的赋材质办法):

    5. unreal.MaterialEditingLibrary.set_material_instance_parent(MIAsset,ParentMaterial) 材质实例设置父子关系 

    6. MIAssetPath.split('/')[1:-2] 路径处理方法  处理前:#/Game/Character/Monster/NPC_12345/MI/MI_NPC_12345    处理后:['Game','Character','Monster','NPC_12345']

    7. unreal.MaterialEditingLibrary.set_material_instance_texture_parameter_value(MIAsset,'AlbedoMap',TextureD) #材质实例设置属性值方法

    8. if MIAssetSaveFullPath in MIAssetTuple: 在列表中找是否存在元素

    9. unreal.AssetToolsHelpers.get_asset_tools().create_asset(MIAssetName,InSavePathPrefix,unreal.MaterialInstanceConstant,unreal.MaterialInstanceConstantFactoryNew())创建资产(材质实例举例)

    10. 资源从外部导入content browser,无弹框

    11.遍历文件夹所有文件,深度递归到最子文件

    12. eval(repr(fullfilepath).replace(r'\\','/')) 文件名字右斜杠转换为左斜杠

    13. 打开文件对话框(选择文件夹/文件)

    file_path = filedialog.askdirectory(title='选择要导入资源的文件夹路径',initialdir='D:\\')

    SelectedFilePath = filedialog.askopenfilename(title='选择父类材质球文件,uasset结尾的',filetypes=[('uasset', '*.uasset')],initialdir=OpenPath)

    14. unreal.EditorDialog.show_message('点Copy Message,手动Ctrl+V粘贴到材质球路径框',SplitPath_OutUasset,unreal.AppMsgType.OK)    unreal的消息提示框,提供信息复制功能

    15. 加载同父目录下所有py文件(不加载的话import自定义的py文件会失效,原理就是加到系统环境变量,但会在关闭UE项目时自动清掉添加的环境变量)

    展开全文
  • 但是很少会用到type的另外一个功能,生成一个新的类型,看官方解释:class type(name, bases, dict)With three arguments, return a new type object. This is essentially a dynamic form of th...

    对于type,经常会用到的是判断类型,但是判断类型更推荐的一种方式是使用isinstance();但是很少会用到type的另外一个功能,生成一个新的类型,看官方解释:

    class type(name, bases, dict)

    With three arguments, return a new type object. This is essentially a dynamic form of the class statement. The name string is the class name and becomes the name attribute; the bases tuple itemizes the base classes and becomes the bases attribute; and the dict dictionary is the namespace containing definitions for class body and becomes the dict attribute. For example, the following two statements create identical type objects:

    >>> class X(object):

    ... a = 1

    ...

    >>> X = type("X", (object,), dict(a=1))

    这样就可以产生一个新的类型X。

    再举个demo:

    django框架中的BaseManager

    @classmethod

    def from_queryset(cls, queryset_class, class_name=None):

    if class_name is None:

    class_name = "%sFrom%s" % (cls.__name__, queryset_class.__name__)

    class_dict = {

    "_queryset_class": queryset_class,

    }

    class_dict.update(cls._get_queryset_methods(queryset_class))

    return type(class_name, (cls,), class_dict)

    over...

    展开全文
  • python函数Type hinting

    2021-04-08 11:30:32
    python3新增类型提示功能,例如我们可以为函数增加类型提示信息,而不影响函数本身的执行: 注释的一般规则是参数名后跟一个冒号(:),然后再跟一个expression,这个expression可以是任何形式。 def func(a: 'spam'...
  • pythontype函数

    2015-07-13 03:10:05
    对于type,经常会用到的是判断类型,但是判断类型更...但是很少会用到type的另外一个功能,生成一个新的类型,看官方解释: class type(name, bases, dict) With three arguments, return a new type object. Th...
  • python 常用功能函数

    2021-05-31 19:13:07
    python 常用功能函数1. 取文件前缀和后缀名2. 判断后缀名是否为某一类型 1. 取文件前缀和后缀名 import os, cv2, time, sys # file name name = os.path.splitext(name)[0] # file type name file_type = os.path....
  • Python函数

    2019-12-31 14:40:56
    函数是组织好的、可重复使用的、用来实现单一或相关联功能的代码段。 函数调用 函数接收参数,并且返回一个返回值(return value),当然有的函数并没有参数或者返回值。 函数的调用 >>> print('hello ...
  • 我们知道,type() 函数属于 Python 内置函数,通常用来查看某个变量的具体类型。其实,type() 函数还有一个更高级的用法,即创建一个自定义类型(也就是创建一个类)。 type() 函数的语法格式有 2 种,分别如下: ...
  • Python_函数

    2014-09-04 23:44:42
    函数就是一些具有特定功能抽象出来供给多次访问的语句,和java中方法一样。 通过抽象,我们可以不用关心函数底层具体调用过程,而直接在更高的层次上思考问题,这企不是和站在巨人的肩膀上远观一样吗。 函数的调用 ...
  • Python内置函数OCT详解

    2021-01-20 04:42:25
    英文文档: 复制代码 代码如下:oct ( x ) ...1. 函数功能将一个整数转换成8进制字符串。如果传入浮点数或者字符串均会报错。 >>> a = oct(10) >>> a '0o12' >>> type(a) # 返回结果类型是字符串 <class
  • python apply函数

    2019-10-18 22:14:48
    apply函数, 也就是应用函数, 功能非常强大; 先来解读官方文档: apply函数主要用来处理dataframe形式的数据 def apply(self, func, axis=0, broadcast=None, raw=False, reduce=None, result_type=None, args=()...
  • python常用函数

    2017-10-24 19:18:00
    函数(方法) 功能 type() id() list() tuple() dict() str() 1.type():接受一个...
  • Python 内置函数详解 3

    2021-02-14 14:39:07
    文章目录repr 函数reverse 方法round 函数set 函数setattr 函数slice 函数sorted 函数staticmethod 函数str 函数sum 方法super 函数tuple 方法type 函数unichr 函数vars 函数xrange 函数zip 函数\_\_import__ 函数...
  • 函数可以看成类似于数学中的函数,完成一个特定功能的一段代码。 -绝对值函数 abs() -类型函数 type() -四舍五入函数 round() Python中有很多内建函数,即不需要另外导入的函数。 -cmp(), str() 和 type()适用...
  • 目录 上篇文章思考题 简介 ...功能函数 用于可迭代对象的函数 思考题 上篇文章思考题 >>> d = {(1,):2} >>> d = {(1,[1,2]):2} Traceback (most recent call last): Fi.
  • 1.函数类型 函数也是一种类型,我们⾃定义的函数就是函数对象,函数名保存了函数对象的引...因为函数名也是变量,所以我们可以同样将该函数名保存的函数对象的地址,赋给其他变量,使其他变量具有相同的功能。如下,...
  • pythonpython函数知识

    2018-12-19 04:08:53
    例如:type(),len(),range() 等内置函数 3.函数的语法 def 函数名(参数1,参数2,参数3...): 函数体(此函数的具体功能) return 表达式 例如: def add(a,b,c): result=a+b+c return result ...
  • 09 Python - 函数基础

    2020-06-23 10:25:16
    ​ 1)概念:函数就是对实现某一特定功能的代码段的封装(机器) ​ 2)分类(谁定义的) ​ ① 系统函数 - 系统已经定义了,程序可以直接使用的函数;比如:print、input、type、ord、chr、bin、len、id等等。(别人造...
  • python 函数

    2018-07-23 18:00:40
    #库函数: print input type 等 #自定义: 用户自己封装的函数 #函数的使用 #函数定义格式 # def 函数名([参数列表]): # 函数体 #函数名: #像变量一样,只要符合标识符命名规范即可。 # [] 表示参数是可...
  • Python装饰器(计算函数运行花费时间) – ​ 已经存在两个功能相同的函数,这个函数是对m3u8文件进行解析,提取其中的ts视频片段链接: 文件部分内容( 本文解析的m3u8文件附件): #EXTM3U #EXT-X-...
  • python中的函数和方法的区别 函数要手动传self,方法不用传self。 如果是一个函数,要用类名去调用,如果是一个方法,要用对象去调用. 二 函数是封装了一些独立的功能,可以直接调用,能将一些数据(参数)传递...
  • 需要的朋友可以参考下函数是指代码片段,可以重复调用,比如我们前面文章接触到的type()/len()等等都是函数,这些函数python的内置函数python底层封装后用于实现某些功能。一.函数的定义在Python中,定义一个...
  • Python函数和方法的区别

    万次阅读 多人点赞 2019-04-28 21:48:23
    简单总结: 与类和实例无绑定关系的...函数是封装了一些独立的功能,可以直接调用,能将一些数据(参数)传递进去进行处理,然后返回一些数据(返回值),也可以没有返回值。可以直接在模块中进行定义使用。...
  • 函数简介 定义:具有特殊功能的一段代码 优点: 解决代码的重复书写,可以将功能的实现者和使用者分开,可以提高开发效率。 分类:库函数: print input type等; 自定义:用户自己封装的函数 函数的定义格式: ...
  • 函数可以看成是完成特定功能的一段代码。比如说: 1.绝对值函数abs() 2.类型函数type() 3.四舍五入函数 round() 对于内建函数,可以直接调用。非内建函数需要import模块。 模块 导入多个模块 import ...
  • 然而,type函数的强大功能并非只能用于查看变量类型,在Python中完全允许使用 type函数来动态创建类,或者说定义类,这也是python类编程中的进阶用法! python类定义进阶 下面我们将详细介绍使用type函数动态...
  • 功能 print 打印指定的内容到屏幕 input 获取键盘的输入并以字符串形式返回输入内容 max 返回指定序列中的最大值 min 返回指定序列中的最小值 len 返回指定序列对象的元素个数 type 返回指定对象的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 403
精华内容 161
关键字:

pythontype函数功能

python 订阅