Hướng dẫn how do i convert a string to an object in python? - làm cách nào để chuyển đổi một chuỗi thành một đối tượng trong python?

Nếu bạn thực sự muốn truy xuất các lớp bạn thực hiện với một chuỗi, bạn nên lưu trữ [hoặc được nói đúng, tham khảo] chúng trong một từ điển. Rốt cuộc, điều đó cũng sẽ cho phép đặt tên cho các lớp học của bạn ở cấp độ cao hơn và tránh phơi bày các lớp không mong muốn.

Ví dụ, từ một trò chơi trong đó các lớp diễn viên được xác định trong Python và bạn muốn tránh các lớp chung khác được tiếp cận bằng đầu vào của người dùng.

Một cách tiếp cận khác [như trong ví dụ dưới đây] sẽ tạo ra một lớp hoàn toàn mới, nắm giữ dict ở trên. Cái này sẽ:

  • Cho phép nhiều chủ sở hữu lớp được thực hiện cho tổ chức dễ dàng hơn [như, một cho các lớp diễn viên và một cho các loại âm thanh];
  • Thực hiện sửa đổi cho cả người giữ và các lớp được tổ chức dễ dàng hơn;
  • Và bạn có thể sử dụng các phương thức lớp để thêm các lớp vào dict. [Mặc dù sự trừu tượng dưới đây không thực sự cần thiết, nhưng nó chỉ đơn thuần là ... "Minh họa"].

Example:

class ClassHolder:
    def __init__[self]:
        self.classes = {}

    def add_class[self, c]:
        self.classes[c.__name__] = c

    def __getitem__[self, n]:
        return self.classes[n]

class Foo:
    def __init__[self]:
        self.a = 0

    def bar[self]:
        return self.a + 1

class Spam[Foo]:
    def __init__[self]:
        self.a = 2

    def bar[self]:
        return self.a + 4

class SomethingDifferent:
    def __init__[self]:
        self.a = "Hello"

    def add_world[self]:
        self.a += " World"

    def add_word[self, w]:
        self.a += " " + w

    def finish[self]:
        self.a += "!"
        return self.a

aclasses = ClassHolder[]
dclasses = ClassHolder[]
aclasses.add_class[Foo]
aclasses.add_class[Spam]
dclasses.add_class[SomethingDifferent]

print aclasses
print dclasses

print "======="
print "o"
print aclasses["Foo"]
print aclasses["Spam"]
print "o"
print dclasses["SomethingDifferent"]

print "======="
g = dclasses["SomethingDifferent"][]
g.add_world[]
print g.finish[]

print "======="
s = []
s.append[aclasses["Foo"][]]
s.append[aclasses["Spam"][]]

for a in s:
    print a.a
    print a.bar[]
    print "--"

print "Done experiment!"

Điều này trả lại cho tôi:



=======
o


o

=======
Hello World!
=======
0
1
--
2
6
--
Done experiment!

Một thử nghiệm thú vị khác để làm với những điều đó là thêm một phương pháp làm dấy vào ClassHolder để bạn không bao giờ mất tất cả các lớp bạn đã làm:^]

CẬP NHẬT: Cũng có thể sử dụng một bộ trang trí làm tốc ký. It is also possible to use a decorator as a shorthand.

class ClassHolder:
    def __init__[self]:
        self.classes = {}

    def add_class[self, c]:
        self.classes[c.__name__] = c

    # -- the decorator
    def held[self, c]:
        self.add_class[c]

        # Decorators have to return the function/class passed [or a modified variant thereof], however I'd rather do this separately than retroactively change add_class, so.
        # "held" is more succint, anyway.
        return c 

    def __getitem__[self, n]:
        return self.classes[n]

food_types = ClassHolder[]

@food_types.held
class bacon:
    taste = "salty"

@food_types.held
class chocolate:
    taste = "sweet"

@food_types.held
class tee:
    taste = "bitter" # coffee, ftw ;]

@food_types.held
class lemon:
    taste = "sour"

print[food_types['bacon'].taste] # No manual add_class needed! :D

Lập trình bên PythonserverServer Side ProgrammingProgramming


Ngoài lập trình cơ bản - Python trung gian

Phổ biến nhất

36 bài giảng 3 giờ 3 hours

Mohammad Nauman

Chi tiết hơn

Học máy thực tế bằng cách sử dụng Python

Người bán hàng giỏi nhất

91 bài giảng 23,5 giờ 23.5 hours

Manas Dasgupta

Chi tiết hơn

Học máy thực tế bằng cách sử dụng Python

Người bán hàng giỏi nhất 6 hours

Manas Dasgupta

Chi tiết hơn

Học máy thực tế bằng cách sử dụng Python

Người bán hàng giỏi nhất

class Foobar:
    pass
print eval["Foobar"]
print type[Foobar]

91 bài giảng 23,5 giờ

 __main__.Foobar


Manas Dasgupta

Người bán hàng giỏi nhất

import sys
class Foobar:
    pass
def str_to_class[str]:
    return getattr[sys.modules[__name__], str]
print str_to_class["Foobar"]
print type[Foobar]

91 bài giảng 23,5 giờ

__main__.Foobar


Manas Dasgupta

Khoa học dữ liệu thực tế sử dụng Python

  • 22 bài giảng 6 giờ
  • Đưa ra một chuỗi làm đầu vào người dùng cho hàm Python, tôi muốn lấy một đối tượng lớp ra khỏi nó nếu có một lớp có tên đó trong không gian tên hiện được xác định.
  • Thí dụ
  • Đầu ra
  • Một cách khác để chuyển đổi chuỗi thành đối tượng lớp như sau
  • Rajendra Dharmkar
  • Cập nhật ngày 16 tháng 6 năm 2020 08:35:03
  • Câu hỏi và câu trả lời liên quan
  • Làm thế nào để chuyển đổi chuỗi ngày Python thành đối tượng ngày?
  • Làm thế nào để chuyển đổi một chuỗi thành đối tượng JavaScript?
  • Làm thế nào để chuyển đổi một đối tượng ngày JavaScript thành một chuỗi?
  • Làm thế nào để chuyển đổi một đối tượng X thành một biểu diễn chuỗi trong Python?
  • Làm thế nào để chuyển đổi chuỗi JSON thành một đối tượng JavaScript?
  • Chuyển đổi chuỗi thành đối tượng phân cấp - JavaScript
  • Làm thế nào để chuyển đổi đối tượng InputStream thành một chuỗi trong Java?
  • Python - Cách chuyển đổi chuỗi thành đối tượng JSON

Làm thế nào để chuyển đổi một ngày JS sang một đối tượng ngày Python?

Làm thế nào để chuyển đổi chuỗi dấu thời gian thành đối tượng DateTime trong Python?

Làm cách nào để chuyển đổi chuỗi thành đối tượng?

Chúng ta cũng có thể chuyển đổi chuỗi thành một đối tượng bằng phương thức class.forname []. Tham số: Phương thức này chấp nhận tên lớp tham số là lớp mà thể hiện của nó được yêu cầu. Giá trị trả về: Phương thức này trả về thể hiện của lớp này với tên lớp được chỉ định.using the Class. forName[] method. Parameter: This method accepts the parameter className which is the Class for which its instance is required. Return Value: This method returns the instance of this Class with the specified class name.

Làm thế nào để bạn tạo một đối tượng lớp từ một chuỗi trong Python?

Các lớp và đối tượng Python..
Tạo một lớp học.Để tạo một lớp, hãy sử dụng lớp từ khóa: ....
Tạo đối tượng.Bây giờ chúng ta có thể sử dụng lớp có tên MyClass để tạo các đối tượng: ....
Tham số tự.....
Sửa đổi thuộc tính đối tượng.....
Xóa thuộc tính đối tượng.....
Xóa đối tượng ..

Làm cách nào để chuyển đổi một chuỗi thành đối tượng JSON trong Python?

Để chuyển đổi chuỗi thành json trong python, hãy sử dụng hàm json.loads [].JSON.Loads [] là hàm Python tích hợp chấp nhận chuỗi JSON hợp lệ và trả về từ điển để truy cập tất cả các yếu tố.use the json. loads[] function. The json. loads[] is a built-in Python function that accepts a valid json string and returns a dictionary to access all elements.

Làm thế nào để bạn biến một chuỗi thành một biến?

Chuỗi vào tên biến trong python bằng hàm vars [].Thay vì sử dụng hàm locals [] và toàn cầu [] để chuyển đổi một chuỗi thành một tên biến trong python, chúng ta cũng có thể sử dụng hàm vars [].Hàm Vars [], khi được thực thi trong phạm vi toàn cầu, hoạt động giống như hàm Globals [].Using the vars[] Function. Instead of using the locals[] and the globals[] function to convert a string to a variable name in python, we can also use the vars[] function. The vars[] function, when executed in the global scope, behaves just like the globals[] function.

Bài Viết Liên Quan

Chủ Đề