Python 之 内置方法四(Python第十二篇)

__getnewargs

__hash

__init

__init_subclass

__iter

__next

strA = 'abcdefg hijklmn'

# 集合对象序列化
# 并转换为 n+1 元数组
print(strA.__getnewargs__()[0])

tup = (1, 2, 3, 4)
print(tup.__getnewargs__())

# 打印哈希值
# hash值是一直变化的,不是固定的
# 每次运行程序得到的结果都不同
print(strA.__hash__())
a = 'a'
print(a.__hash__())

# 相关参数初始化
# 需要哪些属性及属性值可以在__init__中定义
print(strA.__init__())


# 一般用在类的属性方法
# __init_subclass__
# 可以代替元类进行变量属性的填充
# 如果使用该方法则不需要提前定义任何属性
# 或者说一时间想不到的属性
class testInit:
    def __init__(self):
        self.a = 3
        self.b = 4

    def __init_subclass__(cls, **kwargs):
        for k, v in kwargs.items():
            type.__setattr__(cls, k, v)

    def say(self):
        print('Hello I am {0}'.format(self.name))


# 创建一个类并继承testInit类
# 在参数中填写需要的属性和属性值
# 相当于创建testInit对象了
#
class testSub(testInit, name='Edith', age=19, position='ShangHai'):
    def __init__(self):
        super().__init__()


tinit = testInit()
print(tinit.a)

print(testSub.name, testSub.position, testSub.age)
testSub.say(testSub())
ts = testSub()
print(ts.a)


class TestIter:
    def __init__(self):
        self.a, self.b = 0, 1

    def __iter__(self):
        return self

    # next 与 指针类似
    # 自动根据条件执行程序并记录
    # 所有的内置方法都要进行重写才有灵魂
    def __next__(self):
        self.a, self.b = self.b, self.a + self.b
        print("1:", self.a, self.b)
        if self.a > 1000:
            # 3.8版本Python raise有问题,
            # 运行多次都不会报错(错误)
            # 偶尔一次报错(正确)
            # raise StopIteration()
            print("Fail")
        return self.a, self.b


iter1 = TestIter()
while iter1.a < 1000:
    print('2 iter1.__next__()', iter1.__next__())

结果

abcdefg hijklmn
((1, 2, 3, 4),)
4608941156233210214
7464789024282092041
None
3
Edith ShangHai 19
Hello I am Edith
3
1: 1 1
2 iter1.__next__() (1, 1)
1: 1 2
2 iter1.__next__() (1, 2)
1: 2 3
2 iter1.__next__() (2, 3)
1: 3 5
2 iter1.__next__() (3, 5)
1: 5 8
2 iter1.__next__() (5, 8)
1: 8 13
2 iter1.__next__() (8, 13)
1: 13 21
2 iter1.__next__() (13, 21)
1: 21 34
2 iter1.__next__() (21, 34)
1: 34 55
2 iter1.__next__() (34, 55)
1: 55 89
2 iter1.__next__() (55, 89)
1: 89 144
2 iter1.__next__() (89, 144)
1: 144 233
2 iter1.__next__() (144, 233)
1: 233 377
2 iter1.__next__() (233, 377)
1: 377 610
2 iter1.__next__() (377, 610)
1: 610 987
2 iter1.__next__() (610, 987)
1: 987 1597
2 iter1.__next__() (987, 1597)
1: 1597 2584
Fail
2 iter1.__next__() (1597, 2584)
15
15
4
20

Process finished with exit code 0

__len

__mod

__mul

# 前后两个方法相同
# 即计算长度
# len == length
print(strA.__len__())
print(len('abcdefg hijklmn'))

# 对象与对象取模
c = 4
d = 5
print(c.__mod__(d))

# 对象与对象取乘法
print(c.__mul__(d))

结果

15
15
4
20

转发评论收藏加关注呦
转发评论收藏加关注呦
转发评论收藏加关注呦
转发评论收藏加关注呦
转发评论收藏加关注呦

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
1. capitalize():将字符串的第一个字符转换为大写字母,其他字符转换为小写字母。 2. casefold():将字符串转换为小写字母,包括所有的 ASCII 字符和 Unicode 字符。 3. center(width[, fillchar]):返回一个指定宽度的居中对齐的字符串,如果指定了填充字符,则使用该字符填充空白部分。 4. count(sub[, start[, end]]):返回字符串中出现子字符串 sub 的次数。 5. encode(encoding='utf-8', errors='strict'):使用指定的编码方式对字符串进行编码。 6. endswith(suffix[, start[, end]]):判断字符串是否以指定的后缀结束。 7. expandtabs(tabsize=8):将字符串中的制表符转换为空格,如果指定了 tabsize,则将制表符转换为指定数量的空格。 8. find(sub[, start[, end]]):查找子字符串 sub 在字符串中的位,如果找到则返回其索引值,否则返回 -1。 9. format(*args, **kwargs):使用指定的参数格式化字符串。 10. format_map(mapping):使用指定的字典格式化字符串。 11. index(sub[, start[, end]]):查找子字符串 sub 在字符串中的位,如果找到则返回其索引值,否则抛出 ValueError 异常。 12. isalnum():判断字符串是否只包含字母和数字。 13. isalpha():判断字符串是否只包含字母。 14. isdecimal():判断字符串是否只包含十进制数字。 15. isdigit():判断字符串是否只包含数字。 16. isidentifier():判断字符串是否是一个合法的 Python 标识符。 17. islower():判断字符串中的所有字母是否都是小写字母。 18. isnumeric():判断字符串是否只包含数字字符。 19. isprintable():判断字符串是否只包含可打印字符。 20. isspace():判断字符串是否只包含空格字符。 21. istitle():判断字符串是否符合标题化的规则。 22. isupper():判断字符串中的所有字母是否都是大写字母。 23. join(iterable):将可迭代对象中的所有元素连接成一个字符串。 24. ljust(width[, fillchar]):返回一个指定宽度的左对齐的字符串,如果指定了填充字符,则使用该字符填充空白部分。 25. lower():将字符串中的所有字母转换为小写字母。 26. lstrip([chars]):返回去掉左侧指定字符的字符串,如果未指定,则默认去掉空格字符。 27. partition(sep):将字符串分割成三部分:在 sep 出现之前的部分、sep 本身以及在 sep 之后的部分。 28. replace(old, new[, count]):将字符串中的旧子字符串替换为新子字符串,如果指定了 count,则替换指定数量的子字符串。 29. rfind(sub[, start[, end]]):查找子字符串 sub 在字符串中最后一次出现的位,如果找到则返回其索引值,否则返回 -1。 30. rindex(sub[, start[, end]]):查找子字符串 sub 在字符串中最后一次出现的位,如果找到则返回其索引值,否则抛出 ValueError 异常。 31. rjust(width[, fillchar]):返回一个指定宽度的右对齐的字符串,如果指定了填充字符,则使用该字符填充空白部分。 32. rpartition(sep):将字符串分割成三部分:在 sep 出现之前的部分、sep 本身以及在 sep 之后的部分。 33. rsplit([sep[, maxsplit]]):从右侧开始分割字符串,返回分割后的字符串列表。 34. rstrip([chars]):返回去掉右侧指定字符的字符串,如果未指定,则默认去掉空格字符。 35. split([sep[, maxsplit]]):分割字符串,返回分割后的字符串列表。 36. splitlines([keepends]):按照行分割字符串,返回分割后的字符串列表。 37. startswith(prefix[, start[, end]]):判断字符串是否以指定的前缀开始。 38. strip([chars]):返回去掉指定字符的字符串,如果未指定,则默认去掉空格字符。 39. swapcase():将字符串中的所有小写字母转换为大写字母,所有大写字母转换为小写字母。 40. title():将字符串中每个单词的首字母转换为大写字母。 41. translate(table):使用指定的转换表对字符串进行转换。 42. upper():将字符串中的所有字母转换为大写字母。 43. zfill(width):返回一个指定宽度的字符串,如果字符串长度不足则在左侧填充零。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值