119
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi đang gặp lỗi này khi tôi chạy tập lệnh Python của mình:
TypeError: cannot concatenate 'str' and 'NoneType' objects
Tôi khá chắc chắn rằng chuỗi 'str' có nghĩa là, nhưng tôi không biết đối tượng 'nonetype' là gì. Kịch bản của tôi tào lao trên dòng thứ hai, tôi biết cái đầu tiên hoạt động bởi vì các lệnh từ dòng đó nằm trong ASA của tôi như tôi mong đợi. Lúc đầu, tôi nghĩ rằng nó có thể là do tôi đang sử dụng các biến và đầu vào người dùng bên trong Send_Command.
Mọi thứ trong 'Caps' đều là các biến, mọi thứ trong 'CASE "đều là đầu vào từ' Parser.add_option '.
Tôi đang sử dụng pexpect và optparse
send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
DREFTYMAC
30.4K26 Huy hiệu vàng116 Huy hiệu bạc178 Huy hiệu đồng26 gold badges116 silver badges178 bronze badges
Hỏi ngày 13 tháng 1 năm 2014 lúc 15:58Jan 13, 2014 at 15:58
4
send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
2 là loại cho đối tượng send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
3, đây là một đối tượng cho biết không có giá trị. send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
3 là giá trị trả về của các hàm "không trả lại bất cứ điều gì". Nó cũng là một giá trị trả về mặc định phổ biến cho các chức năng tìm kiếm một cái gì đó và có thể hoặc không tìm thấy nó; Ví dụ: nó được trả lại bởi send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
5 khi Regex không khớp hoặc send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
6 khi khóa không có mục nhập trong dict. Bạn không thể thêm send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
3 vào chuỗi hoặc các đối tượng khác.Một trong những biến của bạn là
send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
3, không phải là một chuỗi. Có thể bạn đã quên send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
9 trong một trong các chức năng của mình hoặc có thể người dùng không cung cấp tùy chọn dòng lệnh và send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
0 đã cho bạn send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
3 cho giá trị của tùy chọn đó. Khi bạn cố gắng thêm send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
3 vào một chuỗi, bạn sẽ có ngoại lệ đó:send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
Một trong
send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
3 hoặc send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
4 hoặc send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
5 có send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
3 là giá trị của nó.
user2357112
242K26 Huy hiệu vàng393 Huy hiệu bạc471 Huy hiệu Đồng26 gold badges393 silver badges471 bronze badges
Đã trả lời ngày 13 tháng 1 năm 2014 lúc 16:01Jan 13, 2014 at 16:01
Burhan Khalidburhan KhalidBurhan Khalid
164K18 Huy hiệu vàng238 Huy hiệu bạc276 Huy hiệu Đồng18 gold badges238 silver badges276 bronze badges
3
Để lập trình phòng thủ, các đối tượng nên được kiểm tra chống lại sự vô tính trước khi sử dụng.
if obj is None:
hoặc
if obj is not None:
Đã trả lời ngày 2 tháng 1 năm 2016 lúc 19:56Jan 2, 2016 at 19:56
Gürol Canbekgürol CanbekGürol Canbek
1,0081 Huy hiệu vàng14 Huy hiệu bạc20 Huy hiệu Đồng1 gold badge14 silver badges20 bronze badges
3
send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
2 chỉ đơn giản là loại của singleton send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
3:>>> type[None]
Từ liên kết sau ở trên:
3send_command[child, SNMPGROUPCMD + group + V3PRIVCMD] send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
Giá trị duy nhất của loại
2.send_command[child, SNMPGROUPCMD + group + V3PRIVCMD] send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
3 thường được sử dụng để biểu thị sự vắng mặt của một giá trị, vì khi các đối số mặc định không được truyền đến một hàm. Nhiệm vụ chosend_command[child, SNMPGROUPCMD + group + V3PRIVCMD] send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
3 là bất hợp pháp và tăngsend_command[child, SNMPGROUPCMD + group + V3PRIVCMD] send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
3.if obj is None:
Trong trường hợp của bạn, có vẻ như một trong những mục bạn đang cố gắng kết nối là
send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
3, do đó lỗi của bạn.Đã trả lời ngày 13 tháng 1 năm 2014 lúc 16:00Jan 13, 2014 at 16:00
Arshajiiarshajiiarshajii
125K24 Huy hiệu vàng234 Huy hiệu bạc282 Huy hiệu Đồng24 gold badges234 silver badges282 bronze badges
Điều đó có nghĩa là bạn đang cố gắng kết hợp một chuỗi với một thứ gì đó là
send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
3.Không có "null" của Python và
send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
2 là loại của nó.Mã này sẽ tăng cùng loại lỗi:
>>> bar = "something"
>>> foo = None
>>> print foo + bar
TypeError: cannot concatenate 'str' and 'NoneType' objects
Đã trả lời ngày 13 tháng 1 năm 2014 lúc 15:59Jan 13, 2014 at 15:59
André Laszloandré LaszloAndré Laszlo
14.7K3 Huy hiệu vàng64 Huy hiệu bạc76 Huy hiệu đồng3 gold badges64 silver badges76 bronze badges
Trong Python
- Nonetype là loại đối tượng
3.send_command[child, SNMPGROUPCMD + group + V3PRIVCMD] send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
- Chỉ có một đối tượng như vậy. Do đó, "một đối tượng không" và "đối tượng không" và "không" là ba cách tương đương để nói điều tương tự.
- Vì tất cả các Nones đều giống hệt nhau và không chỉ bằng nhau, bạn nên thích
8 hơnif obj is None:
9 trong mã của mình.if obj is None:
- Bạn sẽ nhận được
3 ở nhiều nơi trong mã Python thông thường như được chỉ ra bởi câu trả lời được chấp nhận.send_command[child, SNMPGROUPCMD + group + V3PRIVCMD] send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
- Bạn cũng sẽ nhận được
3 trong mã của riêng bạn khi bạn sử dụng kết quả chức năng của hàm không kết thúc bằngsend_command[child, SNMPGROUPCMD + group + V3PRIVCMD] send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
2 hoặc tương tự.if obj is not None:
Representation:
- Có một loại
2 trong một số nhưng không phải tất cả các phiên bản của Python, xem bên dưới.send_command[child, SNMPGROUPCMD + group + V3PRIVCMD] send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
- Khi bạn thực hiện
4, bạn sẽ nhận đượcif obj is not None:
5. Điều này được sản xuất bằng phương phápif obj is not None:
6 củaif obj is not None:
2. Xem tài liệu củasend_command[child, SNMPGROUPCMD + group + V3PRIVCMD] send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
8 và của các hàm ma thuật [hoặc "các hàm dunder" cho các dấu gạch dưới kép trong tên của chúng] nói chung.if obj is not None:
This is produced by the
6 method ofif obj is not None:
2.send_command[child, SNMPGROUPCMD + group + V3PRIVCMD] send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
See the documentation of
8 and that of magic functions [or "dunder functions" for the double underscores in their names] in general.if obj is not None:
Trong Python 2.7
2 là một loại được xác định trong mô -đun thư viện tiêu chuẩnsend_command[child, SNMPGROUPCMD + group + V3PRIVCMD] send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
0>>> type[None]
Trong Python 3.0 đến 3.9
- Nonetype đã bị xóa khỏi mô -đun
0, có lẽ vì chỉ có một giá trị duy nhất của loại này.>>> type[None]
- Tuy nhiên, nó tồn tại một cách hiệu quả, nó chỉ không có tên tích hợp: bạn có thể truy cập Nonetype bằng cách viết
2.>>> type[None]
- Nếu bạn muốn
2 trở lại, chỉ cần xác địnhsend_command[child, SNMPGROUPCMD + group + V3PRIVCMD] send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
4.>>> type[None]
Trong Python 3.10+
2 Một lần nữa là một loại được xác định trong mô -đun thư viện tiêu chuẩnsend_command[child, SNMPGROUPCMD + group + V3PRIVCMD] send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
0, được giới thiệu để giúp loại người kiểm tra thực hiện công việc của họ>>> type[None]
Đã trả lời ngày 7 tháng 7 năm 2021 lúc 9:22Jul 7, 2021 at 9:22
Lutz Precheltlutz PrecheltLutz Prechelt
34K9 Huy hiệu vàng60 Huy hiệu bạc84 Huy hiệu đồng9 gold badges60 silver badges84 bronze badges
1
Trong Python, để thể hiện sự vắng mặt của một giá trị, bạn có thể sử dụng giá trị
send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
3 >>> type[None]
8
Dǝɥɔs ʇoı ןן ǝ
1.3565 huy hiệu vàng16 Huy hiệu bạc38 Huy hiệu đồng5 gold badges16 silver badges38 bronze badges
Đã trả lời ngày 13 tháng 1 năm 2014 lúc 16:00Jan 13, 2014 at 16:00
Arshajiiarshajiisantosh singh
125K24 Huy hiệu vàng234 Huy hiệu bạc282 Huy hiệu Đồng26 gold badges82 silver badges128 bronze badges
1
Trong thông báo lỗi, thay vì nói với bạn rằng bạn không thể kết hợp hai đối tượng bằng cách hiển thị các giá trị của chúng [một chuỗi và
send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
3 trong ví dụ này], trình thông dịch Python cho bạn biết điều này bằng cách hiển thị các loại đối tượng mà bạn đã cố gắng kết nối. Loại của mỗi chuỗi là >>> bar = "something"
>>> foo = None
>>> print foo + bar
TypeError: cannot concatenate 'str' and 'NoneType' objects
0 trong khi loại trường hợp send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
3 duy nhất được gọi là send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
2.Bạn thường không cần phải quan tâm đến bản thân với
send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
2, nhưng trong ví dụ này, cần phải biết rằng >>> bar = "something"
>>> foo = None
>>> print foo + bar
TypeError: cannot concatenate 'str' and 'NoneType' objects
4.Đã trả lời ngày 13 tháng 1 năm 2014 lúc 16:02Jan 13, 2014 at 16:02
FeuermurmelfeuermurmelFeuermurmel
9.0809 Huy hiệu vàng56 Huy hiệu bạc88 Huy hiệu Đồng9 gold badges56 silver badges88 bronze badges
2
Lỗi của bạn xảy ra do một cái gì đó như thế này: ____ ____ 65 >>>
>>> bar = "something"
>>> foo = None
>>> print foo + bar
TypeError: cannot concatenate 'str' and 'NoneType' objects
5>>> Python không có đối tượng nào tương đương với null, nil, v.v. trong các ngôn ngữ khác.
Đã trả lời ngày 13 tháng 1 năm 2014 lúc 16:01Jan 13, 2014 at 16:01
DavedaveDave
1.20212 huy hiệu bạc8 Huy hiệu đồng12 silver badges8 bronze badges
Nếu bạn nhận được loại
send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
3 cho một đối tượng, hãy đảm bảo bạn sẽ quay lại trong phương thức. Ví dụ:class Node:
# node definition
then,
def some_funct[]:
# some code
node = Node[self, self.head]
self.head = node
Nếu bạn không trả lại bất cứ điều gì từ
>>> bar = "something"
>>> foo = None
>>> print foo + bar
TypeError: cannot concatenate 'str' and 'NoneType' objects
7, loại trả lại sẽ là send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
2 vì nó không trả lại bất cứ điều gì.Thay vào đó, nếu bạn trả về chính nút, đó là đối tượng
>>> bar = "something"
>>> foo = None
>>> print foo + bar
TypeError: cannot concatenate 'str' and 'NoneType' objects
9, nó sẽ trả về loại class Node:
# node definition
0.def some_func[self]:
node = Node[self, self.head]
self.head = node
return node
Đã trả lời ngày 28 tháng 4 lúc 4:57Apr 28 at 4:57
Một trong những biến chưa được cung cấp bất kỳ giá trị nào, do đó nó là một kiểu không. Bạn sẽ phải xem xét lý do tại sao đây là một lỗi logic đơn giản từ phía bạn.
Đã trả lời ngày 27 tháng 9 năm 2017 lúc 23:18Sep 27, 2017 at 23:18
Nó được trả lại khi bạn có ví dụ
class Node:
# node definition
1 là câu lệnh cuối cùng của bạn trong một hàm thay vì send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
9:send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
0TypeError: Loại toán hạng không được hỗ trợ cho +: 'nonetype' và 'int'
send_command[child, SNMPGROUPCMD + group + V3PRIVCMD]
send_command[child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv]
1
Đã trả lời ngày 7 tháng 5 năm 2021 lúc 18:01May 7, 2021 at 18:01
0
Đã trả lời ngày 8 tháng 2 năm 2018 lúc 23:31Feb 8, 2018 at 23:31
ChoggchoggChogg
3802 Huy hiệu bạc19 Huy hiệu đồng2 silver badges19 bronze badges