提交 fa23e6c7 编写于 作者: W wizardforcel

2020-06-12 17:18:06

上级 c04f1858
......@@ -58,9 +58,9 @@ else If(buttonName.equals(“Fan”))
但是上述解决方案显然存在许多明显的问题,例如:
* 任何新物品(例如`TubeLight`)都需要更改遥控器的代码。 您将需要添加更多的`if-else`
* 任何新项目(例如`TubeLight`)都需要更改遥控器的代码。 您将需要添加更多的`if-else`
* 如果我们想为其他目的更改按钮,那么我们也需要更改代码。
* 最重要的是,如果家里有很多物品,代码的复杂性和可维护性将会增加。
* 最重要的是,如果家里有很多项目,代码的复杂性和可维护性将会增加。
* 最后,代码不干净且紧密耦合,我们未遵循*为接口编码*等最佳实践。
## 命令模式实现
......
......@@ -409,7 +409,7 @@ for x in [0, 1, 2]:
`return`
退出一个函数并返回一个值。
用于退出一个函数并返回一个值。
```java
def myfunction():
......@@ -423,7 +423,7 @@ def myfunction():
`yield`
结束一个函数,返回一个生成器
用于结束一个函数,返回一个生成器
学习愉快!
......
......@@ -32,7 +32,7 @@ str = """Say hello
## 2.子串或切片
通过使用 slice 语法,我们可以获得一系列字符。 索引从零开始。
通过使用切片语法,我们可以获得一系列字符。 索引从零开始。
`str[m:n]`从位置 2(包括)到 5(不包括)返回字符串。
......@@ -71,7 +71,7 @@ print(str[20]) # IndexError: string index out of range
## 4.字符串长度
len()函数返回字符串的长度:
`len()`函数返回字符串的长度:
```java
str = 'hello world'
......@@ -82,7 +82,7 @@ print(len(str)) # 11
## 5.字符串格式化
要在 python 中格式化 s 字符串,请在所需位置在字符串中使用占位符`{ }`。 将参数传递给`format()`函数以使用值格式化字符串。
要在 python 中格式化字符串,请在所需位置在字符串中使用占位符`{ }`。 将参数传递给`format()`函数以使用值格式化字符串。
我们可以在占位符中传递参数位置(从零开始)。
......@@ -102,7 +102,7 @@ print(txt.format(name, age)) # My age is 36 and the name is Lokesh
## 6.字符串方法
#### 6.1 大写()
#### 6.1 `capitalize()`
它返回一个字符串,其中给定字符串的第一个字符被转换为大写。 当第一个字符为非字母时,它将返回相同的字符串。
......@@ -117,7 +117,7 @@ print( txt.capitalize() ) # 38 yrs old lokesh gupta
```
#### 6.2 casefold()
#### 6.2 `casefold()`
它返回一个字符串,其中所有字符均为给定字符串的小写字母。
......@@ -128,7 +128,7 @@ print( txt.casefold() ) # my name is lokesh gupta
```
#### 6.3 中央()
#### 6.3 `center()`
使用指定的字符(默认为空格)作为填充字符,使字符串居中对齐。
......@@ -143,13 +143,13 @@ print(x) # ' hello world '
```
#### 6.4 计数()
#### 6.4 `count()`
它返回指定值出现在字符串中的次数。 它有两种形式:
``count(value)` - `value` to search for in the string.`
`count(value)` - 要在字符串中搜索的`value`
``count(value, start, end)` - `value` to search for in the string, where search starts from `start` position till `end` position.`
`count(value, start, end)` - 要在字符串中搜索的`value`,其中搜索起始于`start`位置,直到`end`位置。
```java
txt = "hello world"
......@@ -160,7 +160,7 @@ print( txt.count("o", 4, 7) ) # 1
```
#### 6.5 编码()
#### 6.5 `encode()`
它使用指定的编码对字符串进行编码。 如果未指定编码,将使用`UTF-8`
......@@ -173,7 +173,7 @@ print(x) # b'My name is \xc3\xa5mber'
```
#### 6.6 [结尾于()](https://howtodoinjava.com/python/string-endswith-method/)
#### 6.6 [`endswith()`](https://howtodoinjava.com/python/string-endswith-method/)
如果字符串以指定值结尾,则返回`True`,否则返回`False`
......@@ -186,7 +186,7 @@ print( txt.endswith("planet") ) # False
```
#### 6.7 expandtabs()
#### 6.7 `expandtabs()`
它将制表符大小设置为指定的空格数。
......@@ -201,7 +201,7 @@ print( txt.expandtabs(16) ) # 'hello world'
```
#### 6.8 找()
#### 6.8 `find()`
它查找指定值的第一次出现。 如果指定的值不在字符串中,则返回`-1`
......@@ -216,7 +216,7 @@ print(x) # 6
```
#### 6.9 格式()
#### 6.9 `format()`
它格式化指定的字符串,并在字符串的占位符内插入参数值。
......@@ -230,7 +230,7 @@ print( txt.format(name, age) ) # My name is Lokesh and my age is 36
```
#### 6.10 format_map()
#### 6.10 `format_map()`
它用于返回字典键的值,以格式化带有命名占位符的字符串。
......@@ -245,7 +245,7 @@ print(x) # My name is Lokesh Gupta and age is 38
```
#### 6.11 指数()
#### 6.11 `index()`
* 它在给定的字符串中查找指定值的第一次出现。
* 如果找不到要搜索的值,则会引发异常。
......@@ -261,7 +261,7 @@ x = txt.index("z") # ValueError: substring not found
```
#### 6.12 isalnum()
#### 6.12 `isalnum()`
它检查字母数字字符串。 如果所有字符均为字母数字,表示字母`(a-zA-Z)`和数字`(0-9)`,则返回`True`
......@@ -272,7 +272,7 @@ print("Lokesh Gupta".isalnum()) # False - Contains space
```
#### 6.13 isalpha()
#### 6.13 `isalpha()`
如果所有字符都是字母,则返回`True`,表示字母`(a-zA-Z)`
......@@ -285,9 +285,9 @@ print("LokeshGupta38".isalpha()) # False - Contains numbers
```
#### 6.14 十进制()
#### 6.14 `isdecimal()`
如果所有字符均为小数(0-9),则返回代码。 否则返回`False`
如果所有字符均为十进制(0-9),则返回代码。 否则返回`False`
```java
print("LokeshGupta".isdecimal()) # False
......@@ -300,7 +300,7 @@ print("1234 5678".isdecimal()) # False - Contains space
```
#### 6.15 isdigit()
#### 6.15 `isdigit()`
如果所有字符都是数字,则返回`True`,否则返回`False`。 指数也被认为是数字。
......@@ -315,7 +315,7 @@ print("1234\u00B2".isdigit()) # True - unicode for square 2
```
#### 6.16 标识符()
#### 6.16 `isidentifier()`
如果字符串是有效的标识符,则返回`True`,否则返回`False`
......@@ -332,7 +332,7 @@ print( "Lokesh Gupta 38".isidentifier() ) # False - Contain spaces
```
#### 6.17 islower()
#### 6.17 `islower()`
如果所有字符均小写,则返回`True`,否则返回`False`。 不检查数字,符号和空格,仅检查字母字符。
......@@ -347,7 +347,7 @@ print( "lokesh_gupta_38".islower() ) # True
```
#### 6.18 isnumeric()
#### 6.18 `isnumeric()`
如果所有字符都是数字(`0-9`),则此方法返回`True`,否则返回`False`。 指数也被认为是数值。
......@@ -362,13 +362,13 @@ print("1234\u00B2".isnumeric()) # True - unicode for square 2
```
#### 6.19 可打印()
#### 6.19 `isprintable()`
如果所有字符均可打印,则返回`True`,否则返回 False。 不可打印字符用于指示某些格式化操作,例如:
*(被视为不可见的图形)
*(被视为不可见的图形)
* 回车
* 标签
* 制表
* 换行
* 分页符
* 空字符
......@@ -382,11 +382,11 @@ print("Lokesh\tGupta".isprintable()) # False
```
#### 6.20 isspace()
#### 6.20 `isspace()`
如果字符串中的所有字符都是空格,则返回`True`,否则返回`False`
#### 6:21。 istitl A()
#### 6.21 `istitle()`
如果文本中的所有单词均以大写字母开头,而其余单词均为小写字母(即标题大小写),则返回`True`。 否则`False`
......@@ -397,7 +397,7 @@ print("Lokesh gupta".istitle()) # False
```
#### 6.22 isupper()
#### 6.22 `isupper()`
如果所有字符均大写,则返回`True`,否则返回`False`。 不检查数字,符号和空格,仅检查字母字符。
......@@ -410,7 +410,7 @@ print("Lokesh Gupta".isupper()) # False
```
#### 6.23 加入()
#### 6.23 `join()`
它以可迭代方式获取所有项目,并使用强制性指定的分隔符将它们连接为一个字符串。
......@@ -423,7 +423,7 @@ print(x) # Lokesh#Gupta#38
```
#### 6.24 光()
#### 6.24 `ljust()`
此方法将使用指定的字符(默认为空格)作为填充字符使字符串左对齐。
......@@ -436,7 +436,7 @@ print(x) # lokesh--------------
```
#### 6.25 降低()
#### 6.25 `lower()`
它返回一个字符串,其中所有字符均为小写。 符号和数字将被忽略。
......@@ -449,7 +449,7 @@ print(x) # lokesh gupta
```
#### 6.26 lstrip()
#### 6.26 `lstrip()`
它删除所有前导字符(默认为空格)。
......@@ -462,7 +462,7 @@ print(x) # Lokesh Gupta
```
#### 6.27 maketrans()
#### 6.27 `maketrans()`
它创建一个字符到其转换/替换的一对一映射。 当在`translate()`方法中使用时,此转换映射用于将字符替换为其映射的字符。
......@@ -475,7 +475,7 @@ print(string.maketrans(dict)) # {97: '123', 98: '456', 99: '789'}
```
#### 6.28 划分()
#### 6.28 `partition()`
它在给定的文本中搜索指定的字符串,并将该字符串拆分为包含三个元素的元组:
......@@ -496,12 +496,12 @@ print(x[2]) # gupta
```
#### 6.29 更换()
#### 6.29 `replace()`
它将指定的短语替换为另一个指定的短语。 它有两种形式:
* `string.replace(oldvalue, newvalue)`
* `string.replace(oldvalue, newvalue, count)`“计数”指定要替换的匹配次数。 默认为所有事件。
* `string.replace(oldvalue, newvalue, count)` `count`指定要替换的匹配次数。 默认为所有事件。
```java
txt = "A A A A A"
......@@ -516,7 +516,7 @@ print(x) # B B A A A
```
#### 6.30 rfind()
#### 6.30 `rfind()`
它查找指定值的最后一次出现。 如果在给定的文本中找不到该值,则返回`-1`
......@@ -533,7 +533,7 @@ print(x) # -1
```
#### 6.31 rindex()
#### 6.31 `rindex()`
它查找指定值的最后一次出现,如果找不到该值,则会引发异常。
......@@ -548,7 +548,7 @@ x = txt.rindex("amit") # ValueError: substring not found
```
#### 6.32 调整()
#### 6.32 `rjust()`
它将使用指定的字符(默认为空格)作为填充字符来右对齐字符串。
......@@ -561,7 +561,7 @@ print(x, "is my name") # ##############lokesh is my name
```
#### 6.33 rpartition()
#### 6.33 `rpartition()`
它搜索指定字符串的最后一次出现,并将该字符串拆分为包含三个元素的元组。
......@@ -582,7 +582,7 @@ print(x[2]) # gupta
```
#### 6.34 rsplit()
#### 6.34 `rsplit()`
它将字符串从右开始拆分为列表。
......@@ -595,7 +595,7 @@ print(x) # ['apple', 'banana', 'cherry']
```
#### 6.35 rstrip()
#### 6.35 `rstrip()`
它删除所有结尾字符(字符串末尾的字符),空格是默认的结尾字符。
......@@ -608,7 +608,7 @@ print(x) # ' lokesh'
```
#### 6.36 [split()](https://howtodoinjava.com/python/split-string/)
#### 6.36 [`split()`](https://howtodoinjava.com/python/split-string/)
它将字符串拆分为列表。 您可以指定分隔符。 默认分隔符为空格。
......@@ -621,7 +621,7 @@ print(x) # ['my', 'name', 'is', 'lokesh']
```
#### 6.37 splitlines()
#### 6.37 `splitlines()`
通过在换行符处进行拆分,它将字符串拆分为列表。
......@@ -634,7 +634,7 @@ print(x) # ['my name', 'is lokesh']
```
#### 6.38 [startswith()](https://howtodoinjava.com/python/string-startswith/)
#### 6.38 [`startswith()`](https://howtodoinjava.com/python/string-startswith/)
如果字符串以指定值开头,则返回`True`,否则返回`False`。 字符串比较区分大小写。
......@@ -647,7 +647,7 @@ print( txt.startswith("My") ) # False
```
#### 6.39 跳闸()
#### 6.39 `strip()`
它将删除所有前导(开头的空格)和结尾(结尾的空格)字符(默认为空格)。
......@@ -658,7 +658,7 @@ print( txt.strip() ) # 'my name is lokesh'
```
#### 6.40 swapcase()
#### 6.40 `swapcase()`
它返回一个字符串,其中所有大写字母均为小写字母,反之亦然。
......@@ -669,7 +669,7 @@ print( txt.swapcase() ) # mY nAME iS lOKESH gUPTA
```
#### 6.41 标题()
#### 6.41 `title()`
它返回一个字符串,其中每个单词的第一个字符均为大写。 如果单词开头包含数字或符号,则其后的第一个字母将转换为大写字母。
......@@ -682,7 +682,7 @@ print( "1\. lokesh gupta".title() ) # Lokesh Gupta
```
#### 6.42 翻译()
#### 6.42 `translate()`
它需要转换表根据映射表替换/转换给定字符串中的字符。
......@@ -695,7 +695,7 @@ print( string.translate(translation) ) # idef
```
#### 6.43 上()
#### 6.43 `upper()`
它返回一个字符串,其中所有字符均大写。 符号和数字将被忽略。
......@@ -706,7 +706,7 @@ print( txt.upper() ) # LOKESH GUPTA
```
#### 6.44 zfill()
#### 6.44 `zfill()`
它在字符串的开头添加零(0),直到达到指定的长度。
......
......@@ -4,9 +4,9 @@
[Python](https://howtodoinjava.com/python-tutorial/) 中,列表为:
* 下令
* 索引(索引从 0 开始)
* 易变的
* 有序
* 具有索引(索引从 0 开始)
* 可变
* 异构的(列表中的项目不必是同一类型)
* 写为方括号之间的逗号分隔值列表
......@@ -60,7 +60,7 @@ print (charList) # ['a', 'b', 'd']
## 3.迭代列表
我们可以使用`for loop`遍历列表项。
我们可以使用`for`循环遍历列表项。
```java
charList = ["a", "b", "c"]
......@@ -127,11 +127,11 @@ print (charList) # ['a', 'b', 'c', 'd', 'e', 'f', 'h']
```
## 7.移除物品
## 7.移除项目
要从列表中删除一项,请使用以下四种方式之一,即`remove()``pop()``clear()``del`关键字。
#### 7.1 去掉()
#### 7.1 `remove()`
它会通过其值删除指定的项目。
......@@ -144,9 +144,9 @@ print (charList) # ['a', 'b']
```
#### 7.2 pop()
#### 7.2 `pop()`
它将通过索引删除指定的项目。 如果未提供 index,它将从列表中删除最后一项。
它将通过索引删除指定的项目。 如果未提供`index`,它将从列表中删除最后一项。
```java
charList = ["a", "b", "c", "d"]
......@@ -161,7 +161,7 @@ print (charList) # ['a', 'c']
```
#### 7.3 明确()
#### 7.3 `clear()`
它清空列表。
......@@ -174,7 +174,7 @@ print (charList) # []
```
#### 7.4 del 关键字
#### 7.4 `del`关键字
它可以用于**通过索引**从列表中删除某项。 我们也可以使用它来**删除整个列表**
......@@ -191,9 +191,9 @@ print (charList) # NameError: name 'charList' is not defined
```
## 8.加入两个列表
## 8.连接两个列表
我们可以使用`"+"`运算符或`extend()`函数在 Python 中加入两个给定列表。
我们可以使用`"+"`运算符或`extend()`函数在 Python 中连接两个给定列表。
```java
charList = ["a", "b", "c"]
......@@ -211,7 +211,7 @@ print (charList) # ['a', 'b', 'c', 1, 2, 3]
## 9\. Python 列表方法
#### 9.1 附加()
#### 9.1 `append()`
在列表的末尾添加一个元素。
......@@ -224,7 +224,7 @@ print (charList) # ["a", "b", "c", "d"]
```
#### 9.2 明确()
#### 9.2 `clear()`
从列表中删除所有元素。
......@@ -237,7 +237,7 @@ print (charList) # []
```
#### 9.3 复制()
#### 9.3 `copy()`
返回列表的副本。
......@@ -250,7 +250,7 @@ print (newList) # ["a", "b", "c"]
```
#### 9.4 计数()
#### 9.4 `count()`
返回具有指定值的元素数。
......@@ -263,7 +263,7 @@ print (x) # 1
```
#### 9.5 延伸()
#### 9.5 `extend()`
将列表的元素添加到当前列表的末尾。
......@@ -277,7 +277,7 @@ print (charList) # ['a', 'b', 'c', 1, 2, 3]
```
#### 9.6 指数()
#### 9.6 `index()`
返回具有指定值的第一个元素的索引。
......@@ -290,7 +290,7 @@ print (x) # 0
```
#### 9.7 插()
#### 9.7 `insert()`
在指定位置添加元素。
......@@ -303,7 +303,7 @@ print (charList) # ['a', 'b', 'c', 'd']
```
#### 9.8 pop()
#### 9.8 `pop()`
删除指定位置或列表末尾的元素。
......@@ -320,7 +320,7 @@ print (charList) # ['a', 'c']
```
#### 9.9 去掉()
#### 9.9 `remove()`
删除具有指定值的项目。
......@@ -333,7 +333,7 @@ print (charList) # ['a', 'b', 'c']
```
#### 9.10 逆转()
#### 9.10 `reverse()`
反转列表中项目的顺序。
......@@ -346,7 +346,7 @@ print (charList) # ['d', 'c', 'b', 'a']
```
#### 9.11 分类()
#### 9.11 `sort()`
默认情况下,以升序对给定列表进行排序。
......
......@@ -6,14 +6,14 @@
元组是:
* 一成不变的
* 下令
*
* 索引(从零开始)
* 不变的
* 有序
*
* 带有索引(从零开始)
* 带圆括号(可选,但建议)
* 在迭代过程中更快,因为它是不可变的
元组对于创建对象很有用**,该对象通常包含相关信息,例如: 员工信息。 换句话说,元组可以让我们将相关信息“块”在一起,并将其用作单个事物。**
元组对于创建对象很有用,该对象通常包含相关信息,例如: 员工信息。 换句话说,元组可以让我们将相关信息“块”在一起,并将其用作单个事物。
## 1.创建一个元组
......@@ -56,8 +56,8 @@ nestedTuple = ("hello", ("python", "world"))
* **正索引**从元组的开始开始计数。
* **负索引**从元组的末尾开始计数。
* 索引的**范围将创建带有指定项目的新元组(称为**切片**)。**
* 范围`[m:n]`表示从位置 m(*包括*)到位置 n*排除*)。
* 索引的**范围**将创建带有指定项目的新元组(称为切片)。
* 范围`[m:n]`表示从位置`m`*包括*)到位置`n`*排除*)。
* 使用**双索引**访问嵌套元组的元素。
```java
......@@ -80,9 +80,9 @@ print(Tuple[3][0:2]) # ('d', 'e')
```
## 3.循环到元组
## 3.遍历元组
**用于循环**,以遍历元组项。
使用`for`循环,以遍历元组项。
```java
Tuple = ("a", "b", "c")
......@@ -145,7 +145,7 @@ print (joinedTuple) # ("a", "b", "c", "d", "e", "f")
```
## 7.包装和拆开元组
## 7.打包和解包元组
**打包**是指我们将一组值分配给变量的操作。 在打包时,元组中的所有项目都分配给一个元组对象。
......@@ -155,9 +155,9 @@ print (joinedTuple) # ("a", "b", "c", "d", "e", "f")
Tuple = ("a", "b", "c")
```
**包**称为将元组变量分配给另一个元组,并将元组中的各个项目分配给各个变量的操作。
**包**称为将元组变量分配给另一个元组,并将元组中的各个项目分配给各个变量的操作。
在给定的示例中,将元组解包为新的元组,并将值`"a", "b" and "c"` – 分配给变量`x, y and z`
在给定的示例中,将元组解包为新的元组,并将值`a, b, c` – 分配给变量`x, y, z`
```java
Tuple = ("a", "b", "c") # Packing
......@@ -183,7 +183,7 @@ Tuple = ("a", "b", "c") # Packing
## 8.命名元组
Python 提供了一种称为**的特殊类型的函数,名称为 tuple()**,该函数来自`collection`模块。
Python 提供了一种称为`namedtuple()`**特殊类型的函数**,该函数来自`collection`模块。
命名元组类似于字典,但是支持从值和键访问,其中字典仅支持按键访问。
......@@ -204,7 +204,7 @@ print("Record name is:", R1.name) # Record name is: My Record
## 9\. Python 元组方法
#### 9.1 任何()
#### 9.1 `any`
如果该元组中至少存在一个元素,则返回`True`;如果该元组为空,则返回`False`
......@@ -215,7 +215,7 @@ print( any( (1, 2) ) ) # Regular tuple - True
```
#### 9.2 分钟()
#### 9.2 `min()`
返回元组的最小元素(整数)。
......@@ -226,7 +226,7 @@ print( min( Tuple ) ) # 1
```
#### 9.3 max()
#### 9.3 `max()`
返回元组的最大元素(整数)。
......@@ -237,7 +237,7 @@ print( max( Tuple ) ) # 9
```
#### 9.4 只要 ()
#### 9.4 `len()`
返回元组的长度。
......@@ -248,7 +248,7 @@ print( len( Tuple ) ) # 5
```
#### 9.5 和()
#### 9.5 `sum()`
返回元组的所有元素(整数)的总和。
......@@ -259,7 +259,7 @@ print( sum( Tuple ) ) # 22
```
## 10.结论
## 10.总结
如上所述,元组不可变,有序和索引的异构元素集合。 它写有或没有圆括号。
......
# Python max()和 min()– 在列表或数组中查找最大值和最小值
# Python `max()`和`min()`– 在列表或数组中查找最大值和最小值
> 原文: [https://howtodoinjava.com/python/max-min/](https://howtodoinjava.com/python/max-min/)
Python 示例使用 **max()****min()**方法在可比较元素的集合(例如列表,集合或数组)中找到最大(或最小)的项目。
Python 示例使用`max()``min()`方法在可比较元素的集合(例如列表,集合或数组)中找到最大(或最小)的项目。
## 1\. Python max()函数
## 1\. Python `max()`函数
`max()`功能用于:
`max()`函数用于:
1. 计算在其参数中传递的最大值。
2. 如果字符串作为参数传递,则在字典上的最大值。
......@@ -54,9 +54,9 @@ Python 示例使用 **max()**和 **min()**方法在可比较元素的集合(
```
## 2\. Python min()函数
## 2\. Python `min()`函数
功能用于:
函数用于:
1. 计算在其参数中传递的最小值。
2. 如果字符串作为参数传递,则在字典上的最小值。
......
# Python 找到最大的 N(前 N 个)或最小的 N 个项目
# Python 找到 N 个最大的或最小的项目
> 原文: [https://howtodoinjava.com/python/find-largest-smallest-items/](https://howtodoinjava.com/python/find-largest-smallest-items/)
Python 示例使用 **heapq** 库中的 **nlargest()****nsmallest()**函数从元素集合中找到最大(或最小)的 N 个元素。
Python 示例使用`heapq`库中的`nlargest()``nsmallest()`函数从元素集合中找到最大(或最小)的 N 个元素。
## 1.使用 heapq 模块的 nlargest()和 nsmallest()
## 1.使用`heapq`模块的`nlargest()`和 nsmallest()
Python `heapq`模块可用于**从集合中找到 N 个最大或最小的项目**。 它具有两个功能来帮助
Python `heapq`模块可用于**从集合中找到 N 个最大或最小的项目**。 它具有两个辅助函数
1. `nlargest()`
2. `nsmallest()`
......@@ -57,6 +57,6 @@ print(heapq.nsmallest(3, nums))
```
If you are simply trying to find the single smallest or largest item (`N=1`), it is faster to [use `min()` and `max()` functions](https://howtodoinjava.com/python/max-min/).
如果您只是想查找单个最小或最大项目(`N = 1`),则[使用`min()`和`max()`函数](https://howtodoinjava.com/python/max-min/)更快。
学习愉快!
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册